Versions Compared

Key

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

...

Status
subtletrue
colourRed
title404
 Not Found

  AnchorCreate Node With Named PathCreate Node With Named Path

...

Status
colourBlue
titlePOST
 Create a new automatically-named child node or datastream at the given pathCreate a new child node at the given path.

 

Query Parameters:

Status
subtletrue
titlechecksum
 (Optional) Provide a SHA-1 checksum which will be checked against the uploaded content to ensure error-free transfer

Status
subtletrue
titlemixin
 (Optional; values: fedora:object, fedora:datastream) Explicitly create an object or datastream, instead of inferring it from the request body body

Request Headers:

Lock-Token (Optional) a Lock-Token for any locks previously created on resources updated by this operation

Example (1):

Code Block
curl -X POST "http://localhost:8080/rest/"

Response:

Code Block
Status: 201 Created
 
Headers:
Location: http://localhost:8080/rest/some/path/to/a/new/resource

Example (2):

Code Block
curl -X POST "http://localhost:8080/rest/?mixin=fedora:datastream" # Create a fedora:datastream

Status:

Status
subtletrue
colourGreen
title201
 Created

...

 

...

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.

Lock-Token (Optional) a Lock-Token for any locks previously created on resources updated by this operation

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:

...

Example (1):

Code Block
curl -X POST -H "Slug: new-node-name" "http://localhost:8080/rest/"

Response:

Code Block
Status: 201 Created
 
Headers:
Location: http://localhost:8080/rest/new-node-name"

Status:

Status
subtletrue
colourGreen
title201
 Created

...

 

 

...

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:

...

Lock-Token (Optional) a Lock-Token for any locks previously created on resources updated by this operation

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

...

 

 

...

In addition to creating a new node, execute a SPARQL-Update query against the newly created node. 

Request Headers:

...

Lock-Token (Optional) a Lock-Token for any locks previously created on resources updated by this operation

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

...

 

...

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
titleContent-Disposition
(Optional) content header including the original filename of the uploaded datastream content

 

Status
subtletrue
titleContent-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)

 

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.

 

 

Status
subtletrue
titleLock-Token
(Optional) a Lock-Token for any locks previously created on resources updated by this operation

 

Status
subtletrue
titleSLUG
(Optional) a suggested name for the new child resource, which the repository may ignore

 

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 XXX.

 

Example (1): Create a new child node

Code Block
curl -X POST "http://localhost:8080/rest/"

Response:

Code Block
Status: 201 Created
 
Headers:
Location: http://localhost:8080/rest/some/path/to/a/new/resource

Example (2): Create a new child datastream

Code Block
curl -X POST "http://localhost:8080/rest/?mixin=fedora:datastream" # Create a fedora:datastream

Example (3): Create a new node with RDF properties

Code Block
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" 

 

Header Parameters:

...

Lock-Token (Optional) a Lock-Token for any locks previously created on resources updated by this operation

 

Example (1):

Code Block
curl -X POST --upload-file 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
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:

...

Lock-Token (Optional) a Lock-Token for any locks previously created on resources updated by this operation

Query Parameters:

...

 

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
colourGreen
titlePATCH
 with SPARQL-Update

Request Headers:

...

Lock-Token (Optional) a Lock-Token for any locks previously created on resources updated by this operatio

Example (1):

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

Example (2): Updating multiple objects with a single SPARQL Update

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" .
  <http://localhost:8080/rest/another/node/to/update> dc:title "some-other-title" .
}
WHERE { } 

Response:

Code Block
Status: 204 No Content

 

Status:

...

 

 

Status
colourRed
titleDELETE
Delete a resource

Request Headers:

Lock-Token (Optional) a Lock-Token for any locks previously created on resources updated by this operation

Example:

Code Block
curl -X DELETE "http://localhost:8080/rest/node/to/delete"

Response:

Code Block
Status: 204 No Content

 

Status:

...

 

 

Status
subtletrue
colourRed
titleMOVE
 Move a resource (and its subtree) to a new location

Request Headers:

Lock-Token (Optional) a Lock-Token for any locks previously created on resources updated by this operation

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
colourRed
title409
 Source path doesn't exists

...

 

 

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

...

node/uri


Status:

Status
subtletrue
colourGreen
title201
 Created

Status
subtletrue
colourRed
title409
 Source path doesn't exists
404
Not Found (resource does not exist – use PUT to specify a new resource name)

Status
subtletrue
colourRed
title409
Conflict (resource is locked) StatussubtletruecolourRedtitle412 Destination path already exists StatussubtletruecolourRedtitle502 Destination URI isn't a valid resource path