Old Release

This documentation covers an old version of Fedora. Looking for another version? See all documentation.

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

Compare with Current View Page History

« Previous Version 22 Next »

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

Nodes

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

- PUT mutate the object at {path}
- DELETE remove the object at {path}

GET /rest/
  list the top-level objects in the repository
 
GET /rest/objects/sufia:123456789
  list the properties of this node
 
GET /rest/some-other-object-living-at-jcr-root
  there's nothing special about /objects, it's just another part of the path to an object. List the object properties
 
POST /rest/objects/islandora:xyzasdf with request body
  (I seem to remember something about a JSON/XML serialization of "profile" properties...)
 
POST /rest/objects/islandora:xyzasdf with an application/sparql-update request body
 @prefix dc: <http://purl/somewhere/something/1.1>
 INSERT { <info:fedora:/objects/islandora:xyzasdf> <dc:title> "My title" } WHERE {}
POST /rest/objects/islandora:xyzasdf?mixin=fedora:object
  create a new fedora object at /objects/islandora:xyzasdf
 
POST /rest/objects/islandora:xyzasdf/an/arbitrary/hierarchy/to/an/islandora:datastream?mixin=fedora:datastream
  create a new datastream at /objects/islandora:xyzasdf/an/arbitrary/hierarchy/to/an/islandora:datastream in the JCR tree. (Will this create all the intermediate nodes? do I need to do this manually?)
 
PUT /rest/objects/sufia:123456789
  (not sure what this implies.. manipulating properties of the node?)
 
DELETE /rest/objects/sufia:123456789
  Delete the node at /objects/sufia:123456789

 

/rest/{path}/fcr:new
- POST create a new child of QueryParam "mixin" under {path}

POST /rest/objects/fcr:new
  create a new child object with an automatically generated unique identifier
 
POST /rest/objects/sufia:123456789?mixin=fedora:datastream
  create a new child datastream for /objects/sufia:123456789 with an automatically generated unique identifier


/rest/{path}/fcr:content
- GET the bytes from {path}/jcr:content/jcr:data
- POST create a new nt:file at {path} with a binary value of the request entity
- PUT mutate the binary value of the nt:file at {path}
- DELETE remove the jcr:content child from the node at {path}

 

GET /rest/objects/sufia:123456789/DS1/fcr:content
  get the binary content of DS1
 
POST /rest/objects/sufia:123456789/THUMBNAIL/fcr:content (with a request body)
  add the binary content from the request body to THUMBNAIL
 
PUT /rest/objects/sufia:123456789/THUMBNAIL/fcr:content (with a request body)
  update the binary content in the THUMBNAIL
 
DELETE /rest/objects/sufia:123456789/THUMBNAIL/fcr:content
  remove the binary content from THUMBNAIL (but leave the JCR node there..)
 
PATCH /rest/objects/sufia:123456789/THUMBNAIL/fcr:content
  (I assume PATCH will work.. that'd be pretty cool)

 

/rest/{path}/fcr:new/fcr:content
- POST create a new nt:file under {path} with a binary value of the request entity

POST /rest/objects/sufia:123456789/fcr:new/fcr:content
  create a new child datastream (with an automatically generated unique identifier) with the content provided by the request body

Children

/rest/{path}/fcr:children
- GET object children, optionally filtered by mixin
- POST unsupported?
- PUT unsupported?
- DELETE unsupported?

GET /rest/objects/sufia:123456789/fcr:children
  List all the child nodes (objects and datastreams) for sufia:12345689
 
GET /rest/objects/sufia:123456789/fcr:children?mixin=fedora:datastream
  only list the `fedora:datastreams` that are children of /objects/sufia:123456789
o the fcrepo 3.x "object profile") 

 

Versioning

/rest/{path}/fcr:versions
- GET the version history of the nt:file or the nt:folder (as appropriate) at {path}

GET /rest/objects/sufia:123456789/fcr:versions
  get the version history of /objects/sufia:123456789 fedora object (not sure what the response looks like, though)
 
GET /rest/objects/sufia:123456789/THUMBNAIL/fcr:versions
  get the version history of the THUMBNAIL datastream
 
GET /rest/objects/sufia:123456789/THUMBNAIL/fcr:content?version=XYZ
  get the jcr:content@jcr:data of  /objects/sufia:123456789/THUMBNAIL with version id 'XYZ'
 
GET /rest/objects/sufia:123456789/fcr:describe?version=XYZ
  get the profile/description of /objects/sufia:123456789 with version id 'XYZ'

 

Datastream Batch Operations

/rest/{path}/fcr:datastreams is only for batch DS operations
- GET
- POST
- DELETE

GET /rest/objects/sufia:123456789/fcr:datastreams?dsid=DC&dsid=RELS-EXT&dsid=CONTENT_METADATA
  receive a multipart/mixed response of the 3 named datastreams under /objects/sufia:123456789
 
POST /rest/objects/sufia:123456789/fcr:datastreams (with a multipart body)
  create any number of datastreams under /objects/sufia:123456789
 
DELETE /rest/objects/sufia:123456789/fcr:datastreams?dsid=THUMBNAIL&dsid=CONTENT
  delete the two named datastreams under /objects/sufia:123456789

 

Fixity

/rest/{path}/fcr:fixity
- GET get the fixity report for the nt:file at {path}

GET /rest/objects/sufia:123456789/THUMBNAIL/fcr:fixity
  retrieve the fixity report for the /objects/sufia:123456789/THUMBNAIL node

 

Relationships

See this fcrepo3 discussion: Supporting the Semantic Web and Linked Data

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

  • No labels