Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Performance issues during browsing bigger datasets. This is generally related to DSpace API. I have reported this problem and proposed solution at http://jira.dspace.org/jira/browse/DS-659. However as I am not sure whether it will be accepted and included in the upcoming release I will change the code and translate some functions used from DSpace API to DSpace REST API. This way some handling will be done directly at REST API level. Consequently  some additional features related to sorting/ordering will be available.
  • Multiple loops in listing Collections and some other entities. This issue is resolved as of end September. Additionally, option to fine-grain details level of the output is implemented (three levels).
  • HTTP Basic Auth - this is easily to implement and will be done shortly
  • Some Authorization related issues: the authorization handling is done on the level of DSpace API. However some functions translated to REST API are not directly available to users and thus do not provide Authorization mechanisms. In order to prevent misuse etc. this gap should be filled at REST API level.
  • Not finished end-points. Working on them.
  • Testing. Testing. I also need cooperation of you potential users. I need  repository for testing containing at least several hundreds of  items. If you can provide me with that please contact me via email.
  • DSpace 1.5 and older versions support - planned to be implemented at the end of initial public release.

Recent changes

  • June 6: Added support for logo (issue reported by Vibhaj Rayan and Hayden Young)
  • June 1: Applied Peter Dietz's patches (https://gist.github.com/952058) and pom.xml improvements discussed bellow on this page; fixed collection/items display reported by Hayden Young

...

C

Verb

URL

Description

Mandatory parameters

Optional parameters

Sorting fields

Response Data

Formats

Response codes

 

GET

/communities

Returns a list of all communities on the system or return just top level communities.

-

topLevelOnly=true
idOnly=false
detail=standard

id 
name
countitems

The list of communities containing respective fields .

Response code details:
204 - if there are no communities on the system

json
xml

200, 204, 400, 500

 

GET

/communities/{id}

Return detailed information about id community.

id

idOnly=false
detail=standard

-

Fields describing community.

json
xml

200, 400, 404, 500

 

GET

/communities/{id}/{element}

Return a particular data field found in the community id

Anchor
com_elements
com_elements
Fields supported (for element):
id - entity identifier, internal to the system
name - entity name
countItems - number of items under community
handle - handle of the community (unique persistent resource identifier)
type - entity type (object type in the system)
collections - collections contained in the community, ordered by id
canedit - states user persmission on the community (editing)
anchestor - anchestors of the community
children - subcommunities, ordered by id
administrators - group administrators, ordered by id
recent - recent items in the community
shortDescription - short description
copyrightText - copyright text
sidebarText - sidebar text
introductoryText - introductory text


id

idOnly=false  
immediateOnly=true
detail=standard

id
name
countitems

Respective field info 

json
xml

200, 204, 400, 500

 

GET

/communities/{id}/logo

Return a community logo info

id

-

-

Contains community logo (bitstream)

Id of bitstream
(use /bitstream/id/receive to get binary data)

json
xml binary

200, 400

 

GET

/collections

Return a list of all collections in the system.

-

idOnly=false
isAuthorized=false
detail=standard

id 
name 
countitems

The list of the collections containing respective fields.

Response code details: 
204 - if there are no communities on the system

json
xml

200, 204, 400, 500

 

GET

/collections/{id}

Return detailed information about id collection

id

idOnly=false
detail=standard

id
name
countitems

Fields of the collection entity.

json
xml

200, 204, 400, 500

 

GET

/collections/{id}/{element}

Return a particular data field found in the collection id.

Anchor
col_elements
col_elements
Fields supported (for element):
id - entity identifier, internal to the system
name - collection name 
licence - collection licence
items - items contained in collection
handle - handle of the collection (unique persistent resource identifier)
canedit - states user permission on the collection (edit)
communities - communities collection is a part of
countItems - number of the items in the collection
type - entity type (object type in the system)
shortDescription - short description of the collection
introText - introductory text for the collection
copyrightText - copyright text for the collection
sidebarText - sidebar text for the collection
provenance - provenance

id

idOnly=false
immediateOnly=true
#immediateonly detail=standard

id 
name
countitems

Respective field info

json
xml

200, 204, 400, 500

 

GET

/items

Return a list of the items in the system

-

detail=standard

-

The list of the items containing related fields .

Response code details: 
204 - if there are no communities on the system

 

 

 

GET

/items/{id}

Return detailed information about an item.

id

detail=standard

id 
name 
lastmodified
submitter

Fields of the item entity.

json 
xml

200, 204, 400, 500

 

GET

/items/{id}/{element}

Return a particular data field fould in the item id

Anchor
ite_elements
ite_elements
Fields supported (for element):
metadata - item metadata 
submitter - submitter group
isArchived - archival status of the item
isWithdrawn - states if the item is withdrawn
owningCollection - owning collection of the item
lastModified - last modified time
collections - collections the item appears in
communities - communities the item appears is
name - name of the item
bitstreams - bitstreams related to the  item
handle - item handle (unique identified)
canedit - states can user edit the item
id - item id 
type - element type
bundles - bundles related to the item

id, element

detail=standard

-

Respective field info

json
xml

200, 204, 400, 500

 

GET

/bitstream/{id}

Return bitstream object - usually the library item file.

id

-

-

Fields of the bitstream entity. 

json, xml

200, 400, 401, 403, 404, 500

 

GET

/bitstream/{id}/{element

Return a particular data field found in bitstream id.

Anchor
bit_elements
bit_elements

Supported fields (for element):
mimeType -  mime type of file
bundles - bundles the bitstream is a part of
checkSum - checksum of the file
checkSumAlgorithm - checksum algorithm used
description - bitstream description
formatDescription - file format description
sequenceId - sequence id of the file
size - size of the file 
source - source (typically filename with path information)
storeNumber - asset store number where the bitstream is stored
userFormatDescription - user's format description
name - bitstream name
handle - unique id of the bitstream
id - internal id of the bitstream
type - type of the entity (referring to bitstream)

Note: bitstream can be not only the content of the item (like book pdf file etc), but also licence file or logo of community

id, element

detail=standard

-

Respective field info

json, xml

200, 400, 401, 403, 404, 500

 

GET

/bitstream/{id}/receive

Return bitstream

id

-

-

Return bitstream

binary

200, 400, 401, 403, 404, 500

 

GET

/groups

Return a list of the groups in the system

-

detail=standard

-

The list of the groups containing related fields .

204 if there are no groups in the system.

json,xml

200, 204, 400, 500

 

GET

/groups/{id}

Return a group object

id

detail=standard

-

Fields of the group entity.

json,xml

200, 204, 400, 500

 

GET

/groups/{id}/{element}

Return a particular data field found in the group entity id.

Anchor
gro_elements
gro_elements

Supported fields (for element):
handle - unique id (external)
id - internal id of the gruop
isEmpty - is the group empty
members - group members (as users)
memberGroups - group members (as groups)
name - group name
type - entity type (referring to group)

id, element

detail=standard

-

Respective field info

json,xml

200, 204, 400, 500

 

GET

/users

Return a list of the users in the system

-

detail=standard

-

The list of the users containing related fields .

json,xml

200,204,400,500

 

GET

/users/{id}

Return a user info

id

detail=standard

-

Fields of the user entity.

json,xml

200,204,400,500

 

GET

/users/{id}/{element}

Return a particular data field found in the user id.

Anchor
use_elements
use_elements

Supported fields (for element):
email - user's email
firstName - first name
fullName - full name
handle - handle (unique, external)
id - internal id of the user
language - preferred language
lastName - last name
name - name 
netId - network id
requireCertificate - requires certificate to login
selfRegistered - is user self registered
type - type of the object

id,element

detail=standard

-

Respective field info

json,xml

200,204,400,500

...