Versions Compared

Key

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

Table of Contents

Some Definitions

jcr - java content repository http://www.day.com/day/en/products/jcr.html; used by fcrepo4 for storing object structure and content

node - a jcr object; it may be a fedora datastream or object.

mixin - a jcr concept we're leaking downstream. for all downstream consumers need to care, this is a simple 'tag' with a couple possible values: fedora:object, fedora:datastream. 

path - a (potentially) hierarchical path to a jcr node (either an object or datastream)

namespace - JCR nodes MAY have a namespace component to their identifier. Unlike fcrepo 3.x, a namespace prefix must be explicitly registered before it can be used. (I assume we can create nodes with the fully-qualified namespace without registering it?)  

External-ish services

/rest/fcr:sitemap
- GET retrieve a sitemap of all the "fedora:object" in the repository (wrapped as a sitemap index, pointing to other sitemaps..) 

/rest/fcr:search
- GET a basic field search (similar to fcrepo 3.x) that exposes the Modeshape index (somehow.)

/rest/fcr:namespaces
- GET list the registered namespaces

/rest/fcr:namespaces/{prefix} (with a request body for the URI the namespace prefix should resolve to)
- POST create the namespace prefix

/rest/fcr:nextPID
- POST mints an ID

...

 

The Fedora 4 REST API is generally a RESTful API. HTTP methods like GET, PUT, POST and DELETE are implemented on most resource paths. The REST API also relies heavily on content negotiation to deliver context-appropriate responses, and a HATEOAS-driven text/html response (providing a decent admin GUI experience on top of the repository).

The Fedora 4 RDF-based responses may be serialized as:

  • application/n3 (or text/rdf+n3 or text/n3)
  • text/turtle
  • application/n-triples
  • text/trig
  • application/xml+rdf
  • application/json+rdf
  • application/n-quads

Objects

 Retrieve or manipulate a node in the Fedora 4 repository. 

/rest/{path}
- GET describe object
- POST create a new node of QueryParam "mixin" at {path}
- POST (with an application/sparql-update payload) 

...

ModeShape REST API: https://docs.jboss.org/author/display/MODE/REST+Service+3.x#RESTService3.x-5.Updateanodeoraproperty

External-ish services

/rest/fcr:sitemap
- GET retrieve a sitemap of all the "fedora:object" in the repository (wrapped as a sitemap index, pointing to other sitemaps..) 

/rest/fcr:search
- GET a basic field search (similar to fcrepo 3.x) that exposes the Modeshape index (somehow.)

/rest/fcr:namespaces
- GET list the registered namespaces

/rest/fcr:namespaces/{prefix} (with a request body for the URI the namespace prefix should resolve to)
- POST create the namespace prefix

/rest/fcr:nextPID
- POST mints an ID