Citesphere Documentation

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Current »

This documentations documents version 1 of the Citesphere API. All endpoints are prefixed with /api/v1.

Authentication

Citesphere requires OAuth2 token for accessing the endpoints. Checkout OAuth2 Documentation to know more about retrieving the access_token (a.k.a Bearer token). You should add the below header for accessing any endpoint.

Header Name: Authorization

Header Value: Bearer <access_token>, example: Bearer 05fa6b64-a5ee-4cce-78bb-cc492e1d73a7

Test Endpoint

This endpoint returns all the available REST endpoints.

ENDPOINT URL /test

Example response:

[
    {
        "user": "myusername"
    },
    {
        "info": "{ /api/v1/test}"
    },
    {
        "info": "{ /api/v1/upload}"
    },
    ...
}

Groups Endpoint

The groups endpoint returns all the groups the authenticating user has access to.

ENDPOINT URL /groups

Example Response:

[
    {
        "id": 1234,
        "name": "dataset",
        "version": 2,
        "created": "2020-06-02T18:40:57Z",
        "lastModified": "2020-06-10T18:30:24Z",
        "numItems": 345,
        "owner": 111,
        "type": "Private",
        "description": "",
        "url": "",
        "syncInfo": null
    },
    {
        "id": 56789,
        "name": "Shared Group",
        "version": 3,
        "created": "2019-08-15T18:02:36Z",
        "lastModified": "2019-08-15T18:12:40Z",
        "numItems": 5555,
        "owner": 1123,
        "type": "Private",
        "description": "",
        "url": "",
        "syncInfo": null
    }
]

Group Endpoint

This endpoint returns information about a specific group. The returned information will also include sync information for a group.

ENDPOINT URL /groups/{groupId}

Example Response:

{
    "id": 1234,
    "name": "dataset",
    "version": 18,
    "created": "2018-11-19T21:34:21Z",
    "lastModified": "2020-09-22T21:11:07Z",
    "numItems": 37,
    "owner": 1111,
    "type": "Private",
    "description": "<p>This is for testing Citesphere.</p>",
    "url": "",
    "syncInfo": {
        "createdOn": "2020-09-30T13:17:26-04:00",
        "status": "DONE"
    }
}

Groups have sync information, which contains a status. The status should be used to determine if the another request should be made to get updated data. Only when the status is DONE syncing is complete. If sync is anything, the client should make a follow up request to get updated data until the status is DONE.

Collections Endpoint

The collections endpoint returns all collections in a group or in a collection.

ENDPOINT URL /groups/{groupId}/collections, /groups/{groupId}/collections/{collectionId}/collections

PARAMETERS

maxCollectionNumber The returned number of collections can be limited using this parameter.

Example Response:

{
    "group": {
        "id": 1234,
        "name": "test",
        "version": 18,
        "created": "2018-11-19T21:34:21Z",
        "lastModified": "2020-09-22T21:11:07Z",
        "numItems": 37,
        "owner": 1111,
        "type": "Private",
        "description": "<p>This is for testing citesphere.</p>",
        "url": "",
        "syncInfo": {
            "createdOn": "2020-09-30T13:17:26-04:00",
            "status": "DONE"
        }
    },
    "collections": [
        {
            "id": {
                "timestamp": 1601486250,
                "date": 1601486250000
            },
            "key": "FG78888",
            "version": 291,
            "contentVersion": 0,
            "numberOfCollections": 0,
            "numberOfItems": 0,
            "name": "hello",
            "parentCollectionKey": "AAA4444",
            "lastModified": null,
            "groupId": "1234"
        }
    ]
}

Groups have sync information, which contains a status. The status should be used to determine if the another request should be made to get updated data. Only when the status is DONE syncing is complete. If sync is anything, the client should make a follow up request to get updated data until the status is DONE.

Items Endpoint

The items endpoint returns the items in a group or collection.

ENDPOINT URL /groups/{groupId}/items, /groups/{groupId}/collections/{collectionId}/items

PARAMETERS

page The page to be returned. A page has at most 50 items.

sort EXPERIMENTAL How the items should be sorted. Default is title. This feature is experimental.

Example Response:

{
    "group": {
        "id": 1123,
        "name": "My Group",
        "version": 4,
        "created": "2018-09-10T20:04:46Z",
        "lastModified": "2019-06-20T12:01:29Z",
        "numItems": 2172,
        "owner": 1111,
        "type": "Private",
        "description": "",
        "url": "",
        "syncInfo": {
            "createdOn": "2020-09-30T15:55:18-04:00",
            "status": "DONE"
        }
    },
    "items": [
        {
            "key": "CXCXX",
            "group": "1123",
            "version": 4873,
            "title": "THE EFFECTS OF A DIET OF POLISHED AND OF UNPOLISHED RICE UPON THE METABOLIC ACTIVITY OF PARAMECIUM",
            "authors": [
                {
                    "@type": "Person",
                    "name": "Mary Drusilla Flather",
                    "uri": null,
                    "localAuthorityId": null,
                    "firstName": "Mary Drusilla",
                    "lastName": "Flather",
                    "positionInList": 0,
                    "affiliations": null
                }
            ],
            "editors": [],
            "otherCreators": [],
            "itemType": "JOURNAL_ARTICLE",
            "publicationTitle": "",
            "volume": "36",
            "issue": "",
            "pages": "",
            "date": "1919-01-01T00:00Z",
            "dateFreetext": "1919",
            "series": "",
            "seriesTitle": "",
            "url": "",
            "abstractNote": "",
            "accessDate": "",
            "seriesText": "",
            "journalAbbreviation": "",
            "language": "",
            "doi": null,
            "issn": null,
            "shortTitle": "",
            "archive": "",
            "archiveLocation": "",
            "libraryCatalog": "",
            "callNumber": "",
            "rights": "",
            "collections": [
                "V5B7E56T"
            ],
            "dateAdded": "2020-07-09T21:20:03Z",
            "dateModified": null,
            "conceptTagIds": null,
            "conceptTags": null,
            "references": null,
            "extra": "Bryn Mawr",
            "otherCreatorRoles": []
        },
        ...
    }
  ]
}

  • No labels