Request URI: /path/to/some/resource
Methods: GET, POST, PUT, PATCH, DELETE, MOVE, COPY
Retrieve all triples for the resource
Query Parameters:
Status |
---|
subtle | true |
---|
title | non-member-properties |
---|
|
By default, we include triples for all member resources, in addition to triples about the given node. Setting this to true will exclude member resources from the result.
Pagination control for member resources
Pagination control for member resources
Request Headers:
text/turtle, text/rdf+n3, text/n3, application/rdf+xml, application/n-triples, text/html
Status |
---|
subtle | true |
---|
title | If-None-Match |
---|
|
Status |
---|
| |
---|
subtle | true |
---|
title | If-Modified-Since |
---|
|
Example (1):
Code Block |
---|
curl -H "Accept: text/turtle" "http://localhost:8080/rest/" |
Response:
Code Block |
---|
Status: 200 OK
Headers:
Content-Type: text/turtle
Cache-Control:
Last-Modified-At: 2013-01-01T01:23:45Z
Link: http://localhost:8080/rest/?offset=0&limit=10;rel="first"
Link: http://www.w3.org/ns/ldp/Resource;rel="type"
Accept-Patch: application/sparql-update
Body:
<http://localhost:8080/rest/>
a <http://www.w3.org/ns/ldp#Container> , <http://www.w3.org/ns/ldp#Page> ;
<http://www.w3.org/ns/ldp#membersInlined>
"true" ;
<http://www.w3.org/ns/ldp#membershipObject>
<http://www.w3.org/ns/ldp#MemberSubject> ;
<http://www.w3.org/ns/ldp#membershipPredicate>
<http://fedora.info/definitions/v4/repository#hasChild> ;
<http://www.w3.org/ns/ldp#membershipSubject>
<http://localhost:8080/rest/> ;
<http://www.w3.org/ns/ldp#pageOf>
<http://localhost:8080/rest/> ;
<http://fedora.info/definitions/v4/rest-api#exportsAs>
<http://localhost:8080/rest//fcr:export?format=jcr/xml> ;
<http://fedora.info/definitions/v4/rest-api#hasNamespaces>
<http://localhost:8080/rest/fcr:namespaces> ;
<http://fedora.info/definitions/v4/rest-api#hasTransactionProvider>
<http://localhost:8080/rest/fcr:tx> ;
<http://fedora.info/definitions/v4/rest-api#hasWorkspaces>
<http://localhost:8080/rest/fcr:workspaces> ;
<http://microformats.org/wiki/rel-sitemap>
<http://localhost:8080/rest/sitemap> ; |
Example (2):
Code Block |
---|
curl -H "Accept: text/turtle" "http://localhost:8080/rest/path/to/resource" |
Response:
Code Block |
---|
Status: 200 OK
Headers:
ETag: "d98e86c48a3e31857f5311f51ad7a2e13a7cedee"
Content-Type: text/turtle
Cache-Control: must-revalidate
Last-Modified: Fri, 15 Nov 2013 23:31:07 +0000
Link: http://localhost:8080/rest/path/to/resource/?offset=0&limit=10;rel="first"
Link: http://www.w3.org/ns/ldp/Resource;rel="type"
Accept-Patch: application/sparql-update
Body:
<http://localhost:8080/rest/path/to/resource>
a <http://fedora.info/definitions/v4/rest-api#resource> , <http://fedora.info/definitions/v4/rest-api#object> ,
<http://www.w3.org/ns/ldp#Container> , <http://www.w3.org/ns/ldp#Page> ;
<http://fedora.info/definitions/v4/repository#uuid>
"e8baa85c-f05a-49e8-9578-9adef92ac60d"^^<http://www.w3.org/2001/XMLSchema#string> ;
<http://www.w3.org/ns/ldp#inlinedResource>
<http://localhost:8080/rest/path/to> ;
<http://www.w3.org/ns/ldp#membersInlined>
"true" ;
<http://www.w3.org/ns/ldp#pageOf>
<http://localhost:8080/rest/path/to/resource> .
<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/rest-api#hasVersions>
<http://localhost:8080/rest/path/to/resource/fcr:versions> ;
<http://fedora.info/definitions/v4/repository#created>
"2013-11-15T23:31:07.275Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
<http://fedora.info/definitions/v4/repository#createdBy>
"bypassAdmin"^^<http://www.w3.org/2001/XMLSchema#string> ;
<http://fedora.info/definitions/v4/repository#hasParent>
<http://localhost:8080/rest/path/to> ;
<http://fedora.info/definitions/v4/repository#lastModified>
"2013-11-15T23:31:07.268Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> ; |
Status:
Status |
---|
subtle | true |
---|
colour | Green |
---|
title | 200 |
---|
|
OK
Status |
---|
subtle | true |
---|
colour | Yellow |
---|
title | 304 |
---|
|
Not Modified
Status |
---|
subtle | true |
---|
colour | Red |
---|
title | 404 |
---|
|
Not Found
Anchor |
---|
| Create Node With Named Path |
---|
| Create Node With Named Path |
---|
|
Create a new node at the given path
Create a new node at the given path, and recursively create any missing parent elements.
Query Parameters:
(Optional; values: fedora:object, fedora:datastream) Explicitly create an object or datastream, instead of inferring it from the request body
Example (1):
Code Block |
---|
curl -X POST "http://localhost:8080/rest/some/path/to/a/new/resource" |
Response:
Code Block |
---|
Status: 201 Created
Headers:
Location: http://localhost:8080/rest/path/to/a/new/resource |
Example (2):
Code Block |
---|
curl -X POST "http://localhost:8080/rest/some/path/to/a/new/resource?mixin=fedora:datastream" # Create a fedora:datastream |
Status:
Status |
---|
subtle | true |
---|
colour | Green |
---|
title | 201 |
---|
|
Created
Create a new node as a child of the given node
If the given resource path exists, a POST to that path will create a new node as a child of the given resource using a generated identifier.
Request Headers:
Use the slug header when creating the new resource (see
AtomPub slug header). If no slug is provided, the identifier will be automatically generated.
Note |
---|
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 POST Create a new node at the given path. |
Query Parameters:
(Optional; values: fedora:object, fedora:datastream) Explicitly create an object or datastream, instead of inferring it from the request body
Example (1):
Code Block |
---|
curl -X POST "http://localhost:8080/rest/this/node/already/exists" |
Response:
Code Block |
---|
Status: 201 Created
Headers:
Location: http://localhost:8080/rest/this/node/already/exists/some/generated/identifier |
Example (2):
Code Block |
---|
curl -X POST -H "Slug: new-node-name" "http://localhost:8080/rest/this/node/already/exists" |
Response:
Code Block |
---|
Status: 201 Created
Headers:
Location: http://localhost:8080/rest/this/node/already/exists/new/node/name |
Status:
Status |
---|
subtle | true |
---|
colour | Green |
---|
title | 201 |
---|
|
Created
Create a new node and populate some properties
In addition to creating a new node, add the given properties to the object
Note |
---|
An RDF payload can be combined with any of the above forms. |
Note |
---|
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. |
Request Headers:
Status |
---|
| |
---|
subtle | true |
---|
title | Content-Type |
---|
|
text/turtle
Query Parameters:
Example:
Code Block |
---|
curl -X POST -H "Content-Type: text/turtle" --data-binary "@body.rdf" "http://localhost:8080/rest/node/to/create"
Request Body:
PREFIX dc: <http://purl.org/dc/elements/1.1/>
<> dc:title "some-resource-title"
|
Response:
Code Block |
---|
Status: 201 Created
Headers:
Location: http://localhost:8080/rest/node/to/create |
Status:
Status |
---|
subtle | true |
---|
colour | Green |
---|
title | 201 |
---|
|
Created
Create a new node and execute a SPARQL-Update query
In addition to creating a new node, execute a SPARQL-Update query against the newly created node.
Request Headers:
Status |
---|
| |
---|
subtle | true |
---|
title | Content-Type |
---|
|
application/sparql-update
Query Parameters:
Note |
---|
RDF will be interpreted using the current resource as the base URI (e.g. <> will be expanded to the current URI) |
Example:
Code Block |
---|
curl -X POST -H "Content-Type: application/sparql-update" --data-binary "@body.rdf" "http://localhost:8080/rest/node/to/create"
Request Body:
PREFIX dc: <http://purl.org/dc/elements/1.1/>
INSERT {
<> dc:title "some-resource-title" .
}
WHERE { }
|
Response:
Code Block |
---|
Status: 201 Created
Headers:
Location: http://localhost:8080/rest/node/to/create |
Status:
Status |
---|
subtle | true |
---|
colour | Green |
---|
title | 201 |
---|
|
Created
Create a new resource with binary content
Note |
---|
If the binary content is RDF or a SPARQL-Update query, see Binary Content for an alternative way to create content |
Query Parameters:
Checksum of the binary content (in the form urn:sha1:<sha-hash>). If the checksum doesn't match, an error will be returned.
Header Parameters:
Status |
---|
| |
---|
subtle | true |
---|
title | Content-DISPOSITION |
---|
|
The filename provided in the content disposition header will be stored in a premis:hasOriginalName property.
Example (1):
Code Block |
---|
curl -X POST --data-binary "@picture.jpg" "http://localhost:8080/rest/binary/resource/to/create" |
Response:
Code Block |
---|
Status: 201 Created
Headers:
Location: http://localhost:8080/rest/binary/resource/to/create/fcr:content |
Example (2):
Code Block |
---|
curl -X POST --data-binary "@picture.jpg" "http://localhost:8080/rest/binary/resource/to/create?checksum=urn:sha1:cb1a576f22e8e3e110611b616e3e2f5ce9bdb941" |
Response:
Code Block |
---|
Status: 201 Created
Headers:
Location: http://localhost:8080/rest/binary/resource/to/create/fcr:content |
Example (3):
Code Block |
---|
curl -X POST --data-binary "@picture.jpg" "http://localhost:8080/rest/binary/resource/to/create?checksum=urn:sha1:checksumdoesntmatch" |
Response:
Code Block |
---|
Status: 409 Conflict
Error:
Checksum Mismatch of cb1a576f22e8e3e110611b616e3e2f5ce9bdb941 and urn:sha1:checksumdoesntmatch |
Note |
---|
By convention, binary content is accessed using the REST endpoint path/to/resource/fcr:content. |
Status:
Status |
---|
subtle | true |
---|
colour | Green |
---|
title | 201 |
---|
|
Created
Status |
---|
| |
---|
subtle | true |
---|
colour | Red |
---|
title | 409 |
---|
|
Conflict
Modify the triples associated with the resource
Replace the existing triples for a resource with the triples provided in the request body.
Note |
---|
Some resource properties are repository managed and cannot be removed or modified. Any attempt to do so may result in a 4xx error. |
Note |
---|
RDF will be interpreted using the current resource as the base URI (e.g. <> will be expanded to the current URI) |
Request Headers:
Status |
---|
| |
---|
subtle | true |
---|
title | Content-Type |
---|
|
text/turtle, text/rdf+n3, application/n3, text/n3, application/rdf+xml, application/json+rdf, application/n-triples, text/html
Status |
---|
| |
---|
subtle | true |
---|
title | If-UNModified-Since |
---|
|
Query Parameters:
Checksum of the binary content (in the form urn:sha1:<sha-hash>). If the checksum doesn't match, an error will be returned.
Example:
Code Block |
---|
curl -X PUT -H "Content-Type: text/turtle" --data-binary "@new-triples.rdf" "http://localhost:8080/rest/node/to/update"
Request Body:
PREFIX dc: <http://purl.org/dc/elements/1.1/>
<> dc:title "some-resource-title" .
|
Response:
Code Block |
---|
Status: 204 No Content |
Status:
Status |
---|
| |
---|
subtle | true |
---|
colour | Green |
---|
title | 204 |
---|
|
No Content
Status |
---|
| |
---|
subtle | true |
---|
colour | Red |
---|
title | 412 |
---|
|
Precondition Failed
with SPARQL-Update
Request Headers:
Status |
---|
| |
---|
subtle | true |
---|
title | If-UNModified-Since |
---|
|
Example:
Code Block |
---|
curl -X PATCH -H "Content-Type: application/sparql-update" --data-binary "@body.rdf" "http://localhost:8080/rest/node/to/update"
Request Body:
PREFIX dc: <http://purl.org/dc/elements/1.1/>
INSERT {
<> dc:title "some-resource-title" .
}
WHERE { }
|
Response:
Code Block |
---|
Status: 204 No Content |
Status:
Status |
---|
| |
---|
subtle | true |
---|
colour | Green |
---|
title | 204 |
---|
|
No Content
Status |
---|
| |
---|
subtle | true |
---|
colour | Red |
---|
title | 412 |
---|
|
Precondition Failed
Delete a resource
Example:
Code Block |
---|
curl -X DELETE "http://localhost:8080/rest/node/to/delete" |
Response:
Code Block |
---|
Status: 204 No Content |
Status:
Status |
---|
| |
---|
subtle | true |
---|
colour | Green |
---|
title | 204 |
---|
|
No Content
Status |
---|
subtle | true |
---|
colour | Red |
---|
title | MOVE |
---|
|
Move a resource (and its subtree) to a new location
Example (1):
Code Block |
---|
curl -X MOVE -H "Destination: http://localhost:8080/rest/new/path/to/node" "http://localhost:8080/rest/path/to/node" |
Response:
Code Block |
---|
Status: 201 Created
Headers:
Location: http://localhost:8080/rest/new/path/to/node |
Example (2):
Code Block |
---|
curl -X MOVE -H "Destination: http://duraspace.org/some/path" "http://localhost:8080/rest/path/to/node" |
Response:
Code Block |
---|
Status: 502 Bad Gateway |
Status:
Status |
---|
| |
---|
subtle | true |
---|
colour | Green |
---|
title | 201 |
---|
|
Created
Status |
---|
subtle | true |
---|
colour | Red |
---|
title | 409 |
---|
|
Source path doesn't exists
Status |
---|
| |
---|
subtle | true |
---|
colour | Red |
---|
title | 412 |
---|
|
Destination path already exists
Status |
---|
| |
---|
subtle | true |
---|
colour | Red |
---|
title | 502 |
---|
|
Destination URI isn't a valid resource path
Status |
---|
subtle | true |
---|
colour | Blue |
---|
title | COPY |
---|
|
Copy a resource (and its subtree) to a new location
Example:
Code Block |
---|
curl -X COPY -H "Destination: http://localhost:8080/rest/new/path/to/node" "http://localhost:8080/rest/path/to/node" |
Response:
Code Block |
---|
Status: 201 Created
Headers:
Location: http://localhost:8080/rest/new/path/to/node |
Status:
Status |
---|
| |
---|
subtle | true |
---|
colour | Green |
---|
title | 201 |
---|
|
Created
Status |
---|
subtle | true |
---|
colour | Red |
---|
title | 409 |
---|
|
Source path doesn't exists
Status |
---|
| |
---|
subtle | true |
---|
colour | Red |
---|
title | 412 |
---|
|
Destination path already exists
Status |
---|
| |
---|
subtle | true |
---|
colour | Red |
---|
title | 502 |
---|
|
Destination URI isn't a valid resource path