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

Compare with Current View Page History

« Previous Version 7 Next »

DSpace REST API - Bojan Suzic


Integration, testing, documentation and further development of DSpace REST services for 1.x and 2.0 versions. - Bojan Suzic

Not completed!

This page is not completed. The work on specifications is ongoing. Everyone is welcome to comment or contribute!

Details


Project Title:

DSpace REST API

Student:

Bojan Suzic, University of Technology Graz

Mentors:

Aaron Zeckoski, Mark Diggory

Contacting author:

bojan AT student . tugraz DOT at - using subject line DSpace

SCM Location for Project:

http://scm.dspace.org/svn/repo/modules/rest


Project description


The REST approach promotes simplification and decoupling of software architecture, enabling further scalability, portability, granularity and simplified interaction of software systems and components.
The aim of this project is to provide DSpace with REST capable API and underlying component, which will enable developers and end-users to exploit the advantages of such approach.

Some of uses this module is intended to provide could be, for instance:

  • interaction between DSpace systems and/or other repositories
  • automation of different activities, e.g. submission of packages
  • integrating repositories in process workflows of other applications or systems
  • interaction with many kinds of systems or web applications, such as CMS, LMS, LCMS, VLS, AMS etc
  • providing of other approaches to UI, such as client based/run UI
  • crawling of repositories, exposing information in structural way

This project is continuation of last year's activities, supported by Google as part of GSoC 2009. In the first stage the basic support for REST for DSpace is provided, exposing many parts of DSpace functionality to the clients.

In this year's GSoC the following activities should be primarily addressed:

  • integration of existing code in the system
  • alignment of REST API with currently available DSpace features/functionality, e.g. adding of new features
  • extending of existing code, in order to provide better handling of management and injection functions
  • providing more detailed documentation and examples for end users
  • testing activities, e.g. cooperation/coordination with other GSoC 10 project Unit testing
  • promotion of DSpace REST interaction (by taking part in integration with other systems)

Detailed activities


In the following sections main activities are elaborated in detail.

REST API Methods

Changes in comparison to existing support are marked with red color. Please note that changes may appear as:

  • introduction of new method
  • extending of existing method, by implementing new functionality (e.g. GET/PUT/DELETE)
  • extending of existing method, by changing its parameters, output etc


Repository browsing


Name and description

Value and notes

Base URI:

/communities?topLevelOnly=true&idOnly=false

Description:

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

HTTP method:

GET

Optional parameters:

 

Sorting fields supported:

id, name, countitems: sorting by id, community name and item count

Response formats:

json, xml

Status codes

200: OK
204: no content
400: bad request
500: internal server error

Response details

 


Name and description

Value and notes

Base URI:

/communities/{id}/parents?idOnly=false&immediateOnly=true

Description:

Returns a list of all parent communities of the id community.

HTTP method:

GET

Optional parameters:

 

Sorting fields supported:

id, name, countitems: sorting by id, community name and item count

Response formats:

json, xml

Status codes

200: OK
204: no content
400: bad request
500: internal server error

Response details

 


Name and description

Value and notes

Base URI:

/communities/id/children?idOnly=false

Description:

Returns a list of immediate sub-communities (children) of the id community.

HTTP method:

GET

Optional parameters:

 

Sorting fields supported:

id, name, countitems: sorting by id, community name and item count

Response formats:

json, xml

Status codes

200: OK
204: no content
400: bad request
500: internal server error

Response details

 


Name and description

Value and notes

Base URI:

/communities/id/collections?idOnly=false

Description:

Returns a list of collections in the id community

HTTP method:

GET

Optional parameters:

 

Sorting fields supported:

id, name, countitems: sorting by id, collection name and item count

Response formats:

json, xml

Status codes

200: OK
204: no content
400: bad request
500: internal server error

Response details

 


Name and description

Value and notes

Base URI:

/communities/

Unknown macro: {id}

/recent?idOnly=false |

Description:

Returns a list of recent submissions to a community

HTTP method:

GET

Optional parameters:

 

Sorting fields supported:

id, name, lastmodified, submitter: sorting by id, name(title), last modified date and submitter(name) of item

Response formats:

json, xml

Status codes

200: OK
204: no content
400: bad request
500: internal server error

Response details

 


Name and description

Value and notes

Base URI:

/collections?idOnly=false

Description:

Returns a list of all collections in the system

HTTP method:

GET

Optional parameters:

 

Sorting fields supported:

id, name, countitems: sorting by id, collection name and item count

Response formats:

json, xml

Status codes

200: OK
204: no content
400: bad request
500: internal server error

Response details

 


Name and description

Value and notes

Base URI:

/collections/

/communities?idOnly=false

Description:

Returns a list of all communities a collection with id belongs to

HTTP method:

GET

Optional parameters:

 

Sorting fields supported:

id, name, countitems: sorting by id, community name and item count

Response formats:

json, xml

Status codes

200: OK
204: no content
400: bad request
500: internal server error

Response details

 


Name and description

Value and notes

Base URI:

/collections/

Unknown macro: {id}

/items?idOnly=false&in_archive=false

Description:

Returns a list of all items from the collection id

HTTP method:

GET

Optional parameters:

 

Sorting fields supported:

id, name, lastmodified, submitter: sorting by id, name, lastmodified date and submitter of item

Response formats:

json, xml

Status codes

200: OK
204: no content
400: bad request
500: internal server error

Response details

 

  • No labels