Versions Compared

Key

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

...

Code Representation of a DSpace Object

DSpace API Object (hibernate): org.dspace.content.DSpaceObject

This is the representation of an object from the DSpace database. Since DSpace 6, this object is populated with hibernate.

Rest Object: org.dspace.app.rest.model.DSpaceObject

This is a plain old java object (pojo) representation of a DSpace object.

Coding the REST object

...

  1. wrap the linked REST resource inside a DSpaceResource (so to have the identifier, self link, and links to other resources). The wrapper is actually created by the Repository responsible of the specific resource (ItemRepository, BitstreamRepository, etc.) https://github.com/DSpace/DSpace/blob/rest7/dspace-spring-rest/src/main/java/org/dspace/app/rest/model/hateoas/DSpaceResource.java#L58
    This give a chance to add custom logic for extra links in specific resource
  2. put the wrapper in the embedded sectionsection 
  3. clean the attribute (not sure if useful/required/right) the attribute:  https://github.com/DSpace/DSpace/blob/rest7/dspace-spring-rest/src/main/java/org/dspace/app/rest/model/hateoas/DSpaceResource.java#L64

...

Repository Object: org.dspace.app.rest.repository.DSpaceRestRepository

Provide repository interface functions that return REST representations of DSpace objects.