Request URI: /path/to/some/resource
Methods: GET, POST, PUT, PATCH, DELETE, MOVE, COPY
GET Retrieve all triples for the resource
Query Parameters:
OFFSET Pagination control for member resources
LIMIT Pagination control for member resources
Request Headers:
ACCEPT text/turtle, text/rdf+n3, text/n3, application/rdf+xml, application/n-triples, text/html
IF-NONE-MATCH IF-MODIFIED-SINCE
PREFER return=minimal
return=representation
return=representation; include="URIs"
return=representation; omit="URIs"
where minimal indicates that only triples directly related to a resource should be returned, and representation indicates that links to other resources and their properties should also be included. URIs is a space-separate list of:
URI | Description |
---|---|
http://www.w3.org/ns/ldp#PreferMembership | links to other resources (including child nodes) and LDP container properties (included in representation by default) |
http://www.w3.org/ns/ldp#PreferContainment | triples describing the child nodes (included in representation by default) |
http://fedora.info/definitions/v4/repository#InboundReferences | links from other Fedora resources to this node (excluded from representation by default) |
Example (1): Turtle
curl -H "Accept: text/turtle" "http://localhost:8080/rest/path/to/resource"
Response:
Status: 200 OK Headers: ETag: "0ed38fe211c2663ace5322e970e7b7d606196e00" Last-Modified: Mon, 19 May 2014 19:44:59 GMT Preference-Applied: return=representation; include="http://www.w3.org/ns/ldp#PreferMembership http://www.w3.org/ns/ldp#PreferContainment" Vary: Prefer Accept-Patch: application/sparql-update Allow: MOVE,COPY,DELETE,POST,HEAD,GET,PUT,PATCH,OPTIONS Accept-Post: text/turtle,text/rdf+n3,application/n3,text/n3,application/rdf+xml,application/n-triples,multipart/form-data,application/sparql-update Link: <http://www.w3.org/ns/ldp#Resource>;rel="type" Link: <http://www.w3.org/ns/ldp#DirectContainer>;rel="type" Content-Type: text/turtle Body: <http://localhost:8080/rest/path/to/resource> <http://fedora.info/definitions/v4/rest-api#hasAccessRoles> <http://localhost:8080/rest/path/to/resource/fcr:accessroles> ; <http://fedora.info/definitions/v4/rest-api#exportsAs> <http://localhost:8080/rest/path/to/resource/fcr:export?format=jcr/xml> ; <http://fedora.info/definitions/v4/repository#hasParent> <http://localhost:8080/rest/path/to> ; a <http://www.w3.org/ns/ldp#Container> , <http://www.w3.org/ns/ldp#DirectContainer> ; <http://www.w3.org/ns/ldp#membershipResource> <http://localhost:8080/rest/path/to/resource> ; <http://www.w3.org/ns/ldp#hasMemberRelation> <http://fedora.info/definitions/v4/repository#hasChild> ; a <http://www.jcp.org/jcr/nt/1.0folder> , <http://www.jcp.org/jcr/nt/1.0hierarchyNode> , <http://www.jcp.org/jcr/nt/1.0base> , <http://www.jcp.org/jcr/mix/1.0created> , <http://fedora.info/definitions/v4/rest-api#resource> , <http://fedora.info/definitions/v4/rest-api#object> , <http://fedora.info/definitions/v4/rest-api#relations> , <http://www.jcp.org/jcr/mix/1.0created> , <http://www.jcp.org/jcr/mix/1.0lastModified> , <http://www.jcp.org/jcr/mix/1.0lockable> , <http://www.jcp.org/jcr/mix/1.0referenceable> , <http://purl.org/dc/elements/1.1/describable> , <http://fedora.info/definitions/v4/rest-api#resource> ; <http://fedora.info/definitions/v4/repository#primaryType> "nt:folder"^^<http://www.w3.org/2001/XMLSchema#string> ; <http://fedora.info/definitions/v4/repository#created> "2014-05-19T19:44:59.647Z"^^<http://www.w3.org/2001/XMLSchema#string> ; <http://fedora.info/definitions/v4/repository#lastModified> "2014-05-19T19:44:59.645Z"^^<http://www.w3.org/2001/XMLSchema#string> ; <http://fedora.info/definitions/v4/repository#mixinTypes> "fedora:resource"^^<http://www.w3.org/2001/XMLSchema#string> , "fedora:object"^^<http://www.w3.org/2001/XMLSchema#string> ; <http://fedora.info/definitions/v4/repository#lastModifiedBy> "bypassAdmin"^^<http://www.w3.org/2001/XMLSchema#string> ; <http://fedora.info/definitions/v4/repository#uuid> "2b655d37-e88a-44c5-86c1-3b3935cdea49"^^<http://www.w3.org/2001/XMLSchema#string> ; <http://fedora.info/definitions/v4/repository#createdBy> "bypassAdmin"^^<http://www.w3.org/2001/XMLSchema#string> ; a <http://www.jcp.org/jcr/nt/1.0folder> , <http://www.jcp.org/jcr/nt/1.0hierarchyNode> , <http://www.jcp.org/jcr/nt/1.0base> , <http://www.jcp.org/jcr/mix/1.0created> , <http://fedora.info/definitions/v4/rest-api#resource> , <http://fedora.info/definitions/v4/rest-api#object> , <http://fedora.info/definitions/v4/rest-api#relations> , <http://www.jcp.org/jcr/mix/1.0created> , <http://www.jcp.org/jcr/mix/1.0lastModified> , <http://www.jcp.org/jcr/mix/1.0lockable> , <http://www.jcp.org/jcr/mix/1.0referenceable> , <http://purl.org/dc/elements/1.1/describable> , <http://fedora.info/definitions/v4/rest-api#resource> .
Example (2): RDF/XML
curl -H "Accept: application/rdf+xml" "http://localhost:8080/rest/path/to/resource"
Response:
Status: 200 OK Headers: ETag: "0ed38fe211c2663ace5322e970e7b7d606196e00" Last-Modified: Mon, 19 May 2014 19:44:59 GMT Preference-Applied: return=representation; include="http://www.w3.org/ns/ldp#PreferMembership http://www.w3.org/ns/ldp#PreferContainment" Vary: Prefer Accept-Patch: application/sparql-update Allow: MOVE,COPY,DELETE,POST,HEAD,GET,PUT,PATCH,OPTIONS Accept-Post: text/turtle,text/rdf+n3,application/n3,text/n3,application/rdf+xml,application/n-triples,multipart/form-data,application/sparql-update Link: <http://www.w3.org/ns/ldp#Resource>;rel="type" Link: <http://www.w3.org/ns/ldp#DirectContainer>;rel="type" Content-Type: application/rdf+xml Body: <?xml version="1.0" encoding="UTF-8"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="http://localhost:8080/rest/path/to/resource"> <hasAccessRoles xmlns="http://fedora.info/definitions/v4/rest-api#" rdf:resource="http://localhost:8080/rest/path/to/resource/fcr:accessroles"/> <exportsAs xmlns="http://fedora.info/definitions/v4/rest-api#" rdf:resource="http://localhost:8080/rest/path/to/resource/fcr:export?format=jcr/xml"/> <hasParent xmlns="http://fedora.info/definitions/v4/repository#" rdf:resource="http://localhost:8080/rest/path/to"/> <rdf:type rdf:resource="http://www.w3.org/ns/ldp#Container"/> <rdf:type rdf:resource="http://www.w3.org/ns/ldp#DirectContainer"/> <membershipResource xmlns="http://www.w3.org/ns/ldp#" rdf:resource="http://localhost:8080/rest/path/to/resource"/> <hasMemberRelation xmlns="http://www.w3.org/ns/ldp#" rdf:resource="http://fedora.info/definitions/v4/repository#hasChild"/> <rdf:type rdf:resource="http://www.jcp.org/jcr/nt/1.0folder"/> <rdf:type rdf:resource="http://www.jcp.org/jcr/nt/1.0hierarchyNode"/> <rdf:type rdf:resource="http://www.jcp.org/jcr/nt/1.0base"/> <rdf:type rdf:resource="http://www.jcp.org/jcr/mix/1.0created"/> <rdf:type rdf:resource="http://fedora.info/definitions/v4/rest-api#resource"/> <rdf:type rdf:resource="http://fedora.info/definitions/v4/rest-api#object"/> <rdf:type rdf:resource="http://fedora.info/definitions/v4/rest-api#relations"/> <rdf:type rdf:resource="http://www.jcp.org/jcr/mix/1.0created"/> <rdf:type rdf:resource="http://www.jcp.org/jcr/mix/1.0lastModified"/> <rdf:type rdf:resource="http://www.jcp.org/jcr/mix/1.0lockable"/> <rdf:type rdf:resource="http://www.jcp.org/jcr/mix/1.0referenceable"/> <rdf:type rdf:resource="http://purl.org/dc/elements/1.1/describable"/> <rdf:type rdf:resource="http://fedora.info/definitions/v4/rest-api#resource"/> <primaryType xmlns="http://fedora.info/definitions/v4/repository#" rdf:datatype="http://www.w3.org/2001/XMLSchema#string">nt:folder</primaryType> <created xmlns="http://fedora.info/definitions/v4/repository#" rdf:datatype="http://www.w3.org/2001/XMLSchema#string">2014-05-19T19:44:59.647Z</created> <lastModified xmlns="http://fedora.info/definitions/v4/repository#" rdf:datatype="http://www.w3.org/2001/XMLSchema#string">2014-05-19T19:44:59.645Z</lastModified> <mixinTypes xmlns="http://fedora.info/definitions/v4/repository#" rdf:datatype="http://www.w3.org/2001/XMLSchema#string">fedora:resource</mixinTypes> <mixinTypes xmlns="http://fedora.info/definitions/v4/repository#" rdf:datatype="http://www.w3.org/2001/XMLSchema#string">fedora:object</mixinTypes> <lastModifiedBy xmlns="http://fedora.info/definitions/v4/repository#" rdf:datatype="http://www.w3.org/2001/XMLSchema#string">bypassAdmin</lastModifiedBy> <uuid xmlns="http://fedora.info/definitions/v4/repository#" rdf:datatype="http://www.w3.org/2001/XMLSchema#string">2b655d37-e88a-44c5-86c1-3b3935cdea49</uuid> <createdBy xmlns="http://fedora.info/definitions/v4/repository#" rdf:datatype="http://www.w3.org/2001/XMLSchema#string">bypassAdmin</createdBy> <rdf:type rdf:resource="http://www.jcp.org/jcr/nt/1.0folder"/> <rdf:type rdf:resource="http://www.jcp.org/jcr/nt/1.0hierarchyNode"/> <rdf:type rdf:resource="http://www.jcp.org/jcr/nt/1.0base"/> <rdf:type rdf:resource="http://www.jcp.org/jcr/mix/1.0created"/> <rdf:type rdf:resource="http://fedora.info/definitions/v4/rest-api#resource"/> <rdf:type rdf:resource="http://fedora.info/definitions/v4/rest-api#object"/> <rdf:type rdf:resource="http://fedora.info/definitions/v4/rest-api#relations"/> <rdf:type rdf:resource="http://www.jcp.org/jcr/mix/1.0created"/> <rdf:type rdf:resource="http://www.jcp.org/jcr/mix/1.0lastModified"/> <rdf:type rdf:resource="http://www.jcp.org/jcr/mix/1.0lockable"/> <rdf:type rdf:resource="http://www.jcp.org/jcr/mix/1.0referenceable"/> <rdf:type rdf:resource="http://purl.org/dc/elements/1.1/describable"/> <rdf:type rdf:resource="http://fedora.info/definitions/v4/rest-api#resource"/> </rdf:Description> </rdf:RDF>
Example (3): Prefer headers
curl -H "Prefer: return=representation; include=\"http://fedora.info/definitions/v4/repository#InboundReferences\"; omit=\"http://www.w3.org/ns/ldp#PreferMembership http://www.w3.org/ns/ldp#PreferContainment\"" http://localhost:8080/rest/parent
Response:
Status: 200 OK Headers: ETag: "25fb5cb1d24983d57b10cb0b4656de113d5b8257" Last-Modified: Mon, 19 May 2014 19:24:40 GMT Preference-Applied: return=representation; include="http://fedora.info/definitions/v4/repository#InboundReferences" Vary: Prefer Accept-Patch: application/sparql-update Allow: MOVE,COPY,DELETE,POST,HEAD,GET,PUT,PATCH,OPTIONS Accept-Post: text/turtle,text/rdf+n3,application/n3,text/n3,application/rdf+xml,application/n-triples,multipart/form-data,application/sparql-update Link: <http://www.w3.org/ns/ldp#Resource>;rel="type" Link: <http://www.w3.org/ns/ldp#DirectContainer>;rel="type" Content-Type: text/turtle Body: <http://localhost:8080/rest/parent> <http://fedora.info/definitions/v4/rest-api#hasAccessRoles> <http://localhost:8080/rest/parent/fcr:accessroles> ; <http://fedora.info/definitions/v4/rest-api#exportsAs> <http://localhost:8080/rest/parent/fcr:export?format=jcr/xml> ; <http://fedora.info/definitions/v4/repository#hasParent> <http://localhost:8080/rest/> ; a <http://www.w3.org/ns/ldp#Container> , <http://www.w3.org/ns/ldp#DirectContainer> ; <http://www.w3.org/ns/ldp#membershipResource> <http://localhost:8080/rest/parent> ; <http://www.w3.org/ns/ldp#hasMemberRelation> <http://fedora.info/definitions/v4/repository#hasChild> ; a <http://www.jcp.org/jcr/nt/1.0folder> , <http://www.jcp.org/jcr/nt/1.0hierarchyNode> , <http://www.jcp.org/jcr/nt/1.0base> , <http://www.jcp.org/jcr/mix/1.0created> , <http://fedora.info/definitions/v4/rest-api#resource> , <http://fedora.info/definitions/v4/rest-api#object> , <http://fedora.info/definitions/v4/rest-api#relations> , <http://www.jcp.org/jcr/mix/1.0created> , <http://www.jcp.org/jcr/mix/1.0lastModified> , <http://www.jcp.org/jcr/mix/1.0lockable> , <http://www.jcp.org/jcr/mix/1.0referenceable> , <http://purl.org/dc/elements/1.1/describable> , <http://fedora.info/definitions/v4/rest-api#resource> . <http://localhost:8080/rest/collection> <http://fedora.info/definitions/v4/rels-ext#hasCollectionMember> <http://localhost:8080/rest/parent> . <http://localhost:8080/rest/parent> <http://fedora.info/definitions/v4/repository#primaryType> "nt:folder"^^<http://www.w3.org/2001/XMLSchema#string> ; <http://fedora.info/definitions/v4/repository#created> "2014-05-19T19:21:37.182Z"^^<http://www.w3.org/2001/XMLSchema#string> ; <http://fedora.info/definitions/v4/repository#lastModified> "2014-05-19T19:24:40.662Z"^^<http://www.w3.org/2001/XMLSchema#string> ; <http://fedora.info/definitions/v4/repository#mixinTypes> "fedora:resource"^^<http://www.w3.org/2001/XMLSchema#string> , "fedora:object"^^<http://www.w3.org/2001/XMLSchema#string> ; <http://fedora.info/definitions/v4/repository#lastModifiedBy> "bypassAdmin"^^<http://www.w3.org/2001/XMLSchema#string> ; <http://fedora.info/definitions/v4/repository#uuid> "c21706cd-cc1a-4d77-b637-d940e0dc7888"^^<http://www.w3.org/2001/XMLSchema#string> ; <http://fedora.info/definitions/v4/repository#createdBy> "bypassAdmin"^^<http://www.w3.org/2001/XMLSchema#string> ; a <http://www.jcp.org/jcr/nt/1.0folder> , <http://www.jcp.org/jcr/nt/1.0hierarchyNode> , <http://www.jcp.org/jcr/nt/1.0base> , <http://www.jcp.org/jcr/mix/1.0created> , <http://fedora.info/definitions/v4/rest-api#resource> , <http://fedora.info/definitions/v4/rest-api#object> , <http://fedora.info/definitions/v4/rest-api#relations> , <http://www.jcp.org/jcr/mix/1.0created> , <http://www.jcp.org/jcr/mix/1.0lastModified> , <http://www.jcp.org/jcr/mix/1.0lockable> , <http://www.jcp.org/jcr/mix/1.0referenceable> , <http://purl.org/dc/elements/1.1/describable> , <http://fedora.info/definitions/v4/rest-api#resource> .
Status:
200 OK
304 Not Modified
404 Not Found
POST Create a new automatically-named child node or datastream at the given path
Query Parameters:
CHECKSUM (Optional) Provide a SHA-1 checksum which will be checked against the uploaded content to ensure error-free transfer
MIXIN (Optional; values: fedora:object, fedora:datastream) Explicitly create an object or datastream, instead of inferring it from the request body
Request Headers:
CONTENT-DISPOSITION (Optional) content header including the original filename of the uploaded datastream content
CONTENT-TYPE (Optional) MIME type of the uploaded datastream or RDF content (if the MIME type corresponds to a supported RDF format, it will be parsed as RDF and used to populate the child node properties, otherwise the uploaded content will be used to create a datastream)
RDF will be interpreted using the current resource as the base URI (e.g. <> will be expanded to the current URI). Namespaces must be declared in full.
LOCK-TOKEN (Optional) a Lock-Token for any locks previously created on resources updated by this operation
SLUG (Optional) a suggested name for the new child resource, which the repository may ignore
The slug you provide does not guarantee the location of the created node. Clients must check the Location header for the path to the created resource. For full control over the generated path, see XXX.
Example (1): Create a new child node
curl -X POST "http://localhost:8080/rest/"
Response:
Status: 201 Created Headers: Location: http://localhost:8080/rest/some/path/to/a/new/resource
Example (2): Create a new child datastream
curl -X POST "http://localhost:8080/rest/?mixin=fedora:datastream" # Create a fedora:datastream
Example (3): Create a new node with RDF properties
curl -X POST -H "Content-Type: text/turtle" --data-binary "@body.rdf" "http://localhost:8080/rest/" Request Body: PREFIX dc: <http://purl.org/dc/elements/1.1/> <> dc:title "some-resource-title"
Response:
Status: 201 Created Headers: Location: http://localhost:8080/rest/new/node/uri
Status:
201 Created
404 Not Found (resource does not exist – use PUT to specify a new resource name)
409 Conflict (resource is locked)