...
curl -s -H "Accept: application/xml" http://localhost:8080/rest/communities | xmllint --format -
Example usage from command line in JSON format with pretty printing:
...
Method | Endpoint | Description |
---|
GET | / | REST API static documentation page |
POST | /login | Login to the REST API using a DSpace EPerson (user). It returns a token JSESSIONID cookie, that can be used for future authenticated requests (as a value of the rest-dspace-token request header). Example Request:
H "Content-Type: application/json" --data '{"email":"admin@dspace.org", "password":"dspace"}' http://localhost:8080/rest/loginv "https://dspace.myu.edu/rest/login?email=admin@dspace.org&password=dspace" |
Example Response: Code Block |
---|
HTTP/1.1 200 OK
Set-Cookie: JSESSIONID=6B98CF8648BCE57DCD99689FE77CB1B8; Path=/rest/; Secure; HttpOnly |
Example of using JSESSIONID cookie for subsequent (authenticated) requests: Code Block |
---|
curl -v "https://dspace.myu.edu/rest/status" --cookie "JSESSIONID=6B98CF8648BCE57DCD99689FE77CB1B8"
# This should return <authenticated>true</authenticated>, and information about the authenticated user session |
Example Response: 1febef81-5eb6-4e76-a0ea-a5be245563a5 Invalid email/password combinations will receive an HTTP 403 Forbidden.401 Unauthorized response. Please note, special characters may need to be HTTP URL encoded. For example, an email address like dspacedemo+admin@gmail.com (notice the + special character) would need to be encoded as dspacedemo%2Badmin@gmail.com . |
POST | /logout | Logout from the REST API, by providing a JSESSIONID cookie | POST | /logout | Logout from the REST API, by providing a header rest-dspace-token. After being posted this token cookie will no longer work. Example Request: H "Content-Type: application/json" -H "rest-dspace-token: 1febef81-5eb6-4e76-a0ea-a5be245563a5" http://localhost:8080/rest/logoutv "https://dspace.myu.edu/rest/logout" --cookie "JSESSIONID=6B98CF8648BCE57DCD99689FE77CB1B8" |
After posting a logout request, cookie is invalidated and the "/status" path should show you as unauthenticated (even when passing that same cookie). For example: Code Block |
---|
curl -v "https://dspace.myu.edu/rest/status" --cookie "JSESSIONID=6B98CF8648BCE57DCD99689FE77CB1B8"
# This should show <authenticated>false</authenticated> |
Invalid token will result in HTTP 400 Invalid Request |
GET | /test | Returns string "REST api is running", for testing that the API is up. Example Request: http://localhost:8080/rest/testExample Response: REST api is running. https://dspace.myu.edu/rest/test |
Example Response: Code Block |
---|
REST api is running. |
|
GET | /status | Receive information about the currently authenticated user token. Example Request (XML by default): Code Block |
---|
curl -v "https://dspace.myu.edu/rest/status" --cookie "JSESSIONID=6B98CF8648BCE57DCD99689FE77CB1B8" |
Example Request (JSON): | GET | /status | Receive information about the currently authenticated user token. Example Request: curl -X GET -H "Content-Type: application/json" -H | "Accept: application/json" -H "rest-dspace-token: f2f478e2-90f2-4e77-a757-4e838ae94154" http://localhost:8080/rest/status "Accept: application/json" -v "https://dspace.myu.edu/rest/status" --cookie "JSESSIONID=6B98CF8648BCE57DCD99689FE77CB1B8" |
Example JSON Response: Example Response:
{"okay":true,"authenticated":true,"email":" | admin@dspaceorg Administrator","token":"f2f478e2-90f2-4e77-a757-4e838ae94154 |
Communities
Communities in DSpace are used for organization and hierarchy, and are containers that hold sub-Communities and Collections. (ex: Department of Engineering)
...