Versions Compared

Key

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

Request URI: /path/to/some/resource

Methods: GET, POST, PUT, PATCH, DELETE, MOVE, COPY

 


 

Status
titleGET
  Retrieve all triples for the resource

Query Parameters:

Status
subtletrue
titlenon-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.

Status
subtletrue
titleoffset
 Pagination control for member resources

Status
subtletrue
titleLIMIT
 Pagination control for member resources

 

Request Headers:

Status
subtletrue
titleAccept
  text/turtle, text/rdf+n3, text/n3, application/rdf+xml, application/n-triples, text/html

Status
subtletrue
titleIf-None-Match
Status
subtletrue
titleIf-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
subtletrue
colourGreen
title200
 OK

Status
subtletrue
colourYellow
title304
 Not Modified

Status
subtletrue
colourRed
title404
 Not Found

 


Anchor
Create Node With Named Path
Create Node With Named Path

Status
colourBlue
titlePOST
 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:

Status
subtletrue
titlemixin
 (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
subtletrue
colourGreen
title201
 Created


 

Status
colourBlue
titlePOST
 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:

Status
subtletrue
titleSlug
  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:

Status
subtletrue
titlemixin
 (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
subtletrue
colourGreen
title201
 Created

 


 

Status
colourBlue
titlePOST
  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
subtletrue
titleContent-Type
  text/turtle

Query Parameters:

Status
subtletrue
titlechecksum

 

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
subtletrue
colourGreen
title201
 Created

 


 

Status
colourBlue
titlePOST
 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
subtletrue
titleContent-Type
  application/sparql-update

Query Parameters:

Status
subtletrue
titlechecksum

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
subtletrue
colourGreen
title201
 Created

 


Status
colourBlue
titlePOST
  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:

Status
subtletrue
titlechecksum
 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
subtletrue
titleContent-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
subtletrue
colourGreen
title201
 Created

Status
subtletrue
colourRed
title409
 Conflict

 


 

Status
colourYellow
titlePUT
 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
subtletrue
titleContent-Type
  text/turtle, text/rdf+n3, application/n3, text/n3, application/rdf+xml, application/json+rdf, application/n-triples, text/html

Status
subtletrue
titleIF-Match
Status
subtletrue
titleIf-UNModified-Since

Query Parameters:

Status
subtletrue
titlechecksum
 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
subtletrue
colourGreen
title204
 No Content

Status
subtletrue
colourRed
title412
 Precondition Failed

 


 

Status
colourGreen
titlePATCH
 with SPARQL-Update

Request Headers:

Status
subtletrue
titleIF-Match
Status
subtletrue
titleIf-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
subtletrue
colourGreen
title204
 No Content

Status
subtletrue
colourRed
title412
 Precondition Failed

 


 

Status
colourRed
titleDELETE
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
subtletrue
colourGreen
title204
 No Content

 


 

Status
subtletrue
colourRed
titleMOVE
 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
subtletrue
colourGreen
title201
 Created

Status
subtletrue
colourRed
title409
 Source path doesn't exists

Status
subtletrue
colourRed
title412
 Destination path already exists

Status
subtletrue
colourRed
title502
 Destination URI isn't a valid resource path

 


 

Status
subtletrue
colourBlue
titleCOPY
 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
subtletrue
colourGreen
title201
 Created

Status
subtletrue
colourRed
title409
 Source path doesn't exists

Status
subtletrue
colourRed
title412
 Destination path already exists

Status
subtletrue
colourRed
title502
 Destination URI isn't a valid resource path