Request URI: /path/to/some/resource Methods: GET, POST, PUT, PATCH, HEAD, OPTIONS, DELETE, MOVE, COPY
Retrieve the content of the resourceRequest Headers: Byte range of content to retrieve, of the form: "Range: bytes=500-999" RDF sources support content negotiation with these formats: application/ld+json, application/n-triples, application/rdf+xml, application/x-turtle, application/xhtml+xml, application/xml, text/html, text/n3, text/plain, text/rdf+n3, text/turtle Status |
---|
subtle | true |
---|
title | If-None-Match |
---|
|
Status |
---|
subtle | true |
---|
title | If-Modified-Since |
---|
| return=minimalreturn=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 LDP defined preferences, and also: URI | Description |
---|
http://fedora.info/definitions/v4/repository#EmbedResources | Embed "child" resources in the returned representation | http://fedora.info/definitions/v4/repository#InboundReferences | Include assertions from other Fedora resources to this node (excluded from representation by default) | http://fedora.info/definitions/v4/repository#ServerManaged | Embed server managed properties in the representation (enabled by default) |
Example (1): Turtle
Code Block |
---|
curl -H "Accept: text/turtle" "http://localhost:8080/rest/path/to/resource" |
Response: Note: JSON-LD profiles can be requested by using the following Accept headers: Accept: application/ld+json; profile=\"http://www.w3.org/ns/json-ld#expanded\"" - default Accept: application/ld+json; profile=\"http://www.w3.org/ns/json-ld#compacted\"" Accept: application/ld+json; profile=\"http://www.w3.org/ns/json-ld#flattened\"" Number of child resources to list. If paired with Accept: (X)HTML, the default is 100. Otherwise, the default is -1 (all children are listed) Status |
---|
subtle | true |
---|
title | If-None-Match |
---|
|
Status |
---|
subtle | true |
---|
title | If-Modified-Since |
---|
| return=minimalreturn=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 LDP defined preferences, and also: URI | Description |
---|
http://fedora.info/definitions/v4/repository#EmbedResources | Embed "child" resources in the returned representation | http://fedora.info/definitions/v4/repository#InboundReferences | Include assertions from other Fedora resources to this node (excluded from representation by default) | http://fedora.info/definitions/v4/repository#ServerManaged | Embed server managed properties in the representation (enabled by default) |
Example (1): Turtle
Code Block |
---|
curl -H "Accept: text/turtle" "http://localhost:8080/rest/path/to/resource" |
Response: Code Block |
---|
Status: 200 OK
Headers:
ETag: "0ed38fe211c2663ace5322e970e7b7d606196e00"
Last-Modified: Mon, 19 May 2014 19:44:59 GMT
Preference-Applied: return=representation; include="http | Code Block |
---|
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: <httpldp#PreferMembership http://www.w3.org/ns/ldp#DirectContainer>;rel="type"
Content-Type: text/turtle
Body:
<http://localhost:8080/rest/path/to/resource> <http://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.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.0referenceable> , <http://purl.org/dc/elements/1.1/describable> , <http://fedora.info/definitions/v4/rest-api#resource> . |
Example (2): RDF/XML
Code Block |
---|
curl -H "Accept: application/rdf+xml" "http://localhost:8080/rest/path/to/resource" |
Response: Code Block |
---|
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:
<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.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.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
Code Block |
---|
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: Code Block |
---|
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.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.0referenceable> , <http://purl.org/dc/elements/1.1/describable> , <http://fedora.info/definitions/v4/rest-api#resource> . |
Example (4): Non-RDF Source
Code Block |
---|
curl "http://localhost:8080/rest/path/to/binary/resource" |
Response: Code Block |
---|
Status: 200 OK
Headers:
ETag: "0ed38fe211c2663ace5322e970e7b7d606196e00"
Last-Modified: Mon, 19 May 2014 19:44:59 GMT
Vary: Prefer
Link: <http://localhost:8080/rest/path/to/binary/resource/fcr:metadata">;rel="describedby"
Content-Type: image/jpg
Body:
{binary content} |
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 Blue | POST | Create new resources within a LDP containerQuery Parameters:
Status |
---|
subtle | true |
---|
title | checksum |
(Optional) Provide a SHA-1 checksum which will be checked against the uploaded content to ensure error-free transfer. Not Acceptable (the 'Accept' request-header media type is either invalid or unsupported)
Create new resources within a LDP container
Request Headers:
Status |
---|
subtle | true |
---|
title | Content-Disposition |
---|
|
(Optional) The filename provided in the content disposition header will be stored in a ebucore:filename property. (See 'Example (6): Uploaded file with filename')
Status |
---|
| |
---|
subtle | true |
---|
title | Content-Type |
---|
|
(Optional) MIME type of the uploaded binary or RDF content.CONTENT-LOCATION (Optional) A URI to a resource to use instead of the request body, including: message/external-body (See ' Example (2): Create a new child binary resource with empty content ')
Note |
---|
If the MIME type corresponds to a supported RDF format or SPARQL-Update, the uploaded content will be parsed as RDF and used to populate the child node properties. 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. For other MIME types, the uploaded content will be used to create a binary resource. |
Status |
---|
subtle | true |
---|
title | SLUG |
(Optional) A suggested name for the new child resource, which the repository may ignore.will be used to create a binary resource. |
(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 resource. Clients must check the Location header for the path to the created resource. |
(Optional) A way of providing one or more checksums (SHA-1, SHA-256, MD5) which will be checked against the uploaded content to ensure error-free transfer. The header is interpreted according to RFC-3230 (See 'Example (4): Uploaded file with checksum' and 'Example (5): Uploaded file with checksum mismatch') If the provided checksum does not match the calculated value for the uploaded file a 409 Conflict will be returned. See PATCH example for documentation on how to change the default algorithm used during on-demand fixity checking.
Example (1): Create a new child node
Code Block |
---|
curl -X POST "http://localhost:8080/rest/" |
Response:
Code Block |
---|
Status: 201 Created
Headers:
ETag: "3ac31b09de1536a332d9c6ee8453669947721840"
Location: http://localhost:8080/rest/some/path/to/a/new/resource
Body:
http://localhost:8080/rest/some/path/to/a/new/resource |
Anchor |
---|
| post-example2 |
---|
| post-example2 |
---|
|
Example (2): Create a new child binary resource with empty content
Code Block |
---|
curl -i -X POST -H "Content-Type:text/plain" |
Note |
---|
The slug you provide does not guarantee the location of the created resource. Clients must check the Location header for the path to the created resource. |
Example (1): Create a new child node
Code Block |
---|
curl -X POST "http://localhost:8080/rest/" |
Response:
Code Block |
---|
Status: 201 Created
Headers:
ETag: "3ac31b09de1536a332d9c6ee8453669947721840"
Location: ETag: "487f188240d2be3ae32d49958c0eeea18224be0a"
Last-Modified: Thu, 29 May 2014 15:46:13 GMT
Link: <http://localhost:8080/rest/b8/fc/32/be/b8fc32be-34be-428e-bf7c-81be97e5f2e3/fcr:metadata>; rel="describedby"; anchor="http://localhost:8080/rest/someb8/pathfc/to32/a/new/resource
Body:
be/b8fc32be-34be-428e-bf7c-81be97e5f2e3"
Location: http://localhost:8080/rest/someb8/pathfc/to32/a/new/resource |
Example (2): Create a new child binary resource with empty content
Code Block |
---|
curl -i -X POST -H "be/b8fc32be-34be-428e-bf7c-81be97e5f2e3
Content-Type: text/plain" "http://localhost:8080/rest" |
Response:
Code Block |
---|
Status: 201 Created
ETag: "487f188240d2be3ae32d49958c0eeea18224be0a"
Last-Modified: Thu, 29 May 2014 15:46:13 GMT
Link: <http
Transfer-Encoding: chunked
Body:
http://localhost:8080/rest/b8/fc/32/be/b8fc32be-34be-428e-bf7c-81be97e5f2e3/fcr:metadata>; rel="describedby"; anchor="http://localhost:8080/rest/b8/fc/32/be/b8fc32be-34be-428e-bf7c-81be97e5f2e3 |
Anchor |
---|
| post-example3 |
---|
| post-example3 |
---|
|
Example (3): Create a new container with RDF properties
Code Block |
---|
curl -i -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:
Code Block |
---|
Status: 201 Created
Headers:
ETag: "a66937ca13bc29c63f7b1a55d447a76cd8f1d573"
Location: http://localhost:8080/rest/b8new/fc/32/be/b8fc32be-34be-428e-bf7c-81be97e5f2e3
Content-Type: text/plain
Transfer-Encoding: chunked
node/uri
Body:
http://localhost:8080/rest/b8/fcrest/32new/be/b8fc32be-34be-428e-bf7c-81be97e5f2e3node/uri |
example3example3Example (34): Create a new container with RDF propertiesUploaded file with checksum
Code Block |
---|
curl -i -X POST -H "Content-Type: text/turtle" --data-binary "@body.rdf@picture.jpg" -H"digest: sha1=cb1a576f22e8e3e110611b616e3e2f5ce9bdb941" "http://localhost:8080/rest/"
Request Body:
PREFIX dc: <http://purl.org/dc/elements/1.1/>
<> dc:title "some-resource-title" /parent/container" |
Response:
Code Block |
---|
Status: 201 Created
Headers:
ETag: "a66937ca13bc29c63f7b1a55d447a76cd8f1d573fe4e2bf389fe05dab6390564e40012d8d36eca19"
Location: http://localhost:8080/rest/new/node/uri/parent/object/auto/generated/ds/id
Body:
http://localhost:8080/rest/new/node/uri/parent/object/auto/generated/ds/id |
Anchor |
---|
| post-example4b |
---|
| post-example4b |
---|
|
Example (44b): Uploaded file with multiple checksum
Code Block |
---|
curl -i -X POST --data-binary "@picture.jpg" -H"digest: sha1=cb1a576f22e8e3e110611b616e3e2f5ce9bdb941, sha256=95331b60710d0400ee4913b5613c78f54" "http://localhost:8080/rest/parent/container?checksum=urn:sha1:cb1a576f22e8e3e110611b616e3e2f5ce9bdb941" |
Response:
Code Block |
---|
Status: 201 Created
Headers:
ETag: "fe4e2bf389fe05dab6390564e40012d8d36eca19"
Location: http://localhost:8080/rest/parent/object/auto/generated/ds/id
Body:
http://localhost:8080/rest/parent/object/auto/generated/ds/id |
Anchor |
---|
| post-example5 |
---|
| post-example5 |
---|
|
Example (5): Uploaded file with checksum mismatch
Code Block |
---|
curl -X POST --data-binary "@picture.jpg" -H"digest: sha1=checksumdoesntmatch" "http://localhost:8080/rest/parent/object?checksum=urn:sha1:checksumdoesntmatch/object" |
Response:
Code Block |
---|
Status: 409 Conflict
Body:
Checksum Mismatch of cb1a576f22e8e3e110611b616e3e2f5ce9bdb941 and urn:sha1:checksumdoesntmatch |
Anchor |
---|
| post-example6 |
---|
| post-example6 |
---|
|
Example (6): Uploaded file with filename
Code Block |
---|
curl -i -X POST --data-binary "@picture.jpg" -H "Content-Disposition: attachment; filename=\"picture.jpg\"" "http://localhost:8080/rest/parent/container" |
Response:
Code Block |
---|
Status: 201 Created
Headers:
ETag: "fe4e2bf389fe05dab6390564e40012d8d36eca19"
Location: http://localhost:8080/rest/parent/object/auto/generated/ds/id
Body:
http://localhost:8080/rest/parent/object/auto/generated/ds/id |
Status:
Status |
---|
subtle | true |
---|
colour | Green |
---|
title | 201 |
---|
|
Created Status |
---|
| |
---|
subtle | true |
---|
colour | Red |
---|
title | 404 |
---|
|
Not Found (resource does not exist – use PUT to specify a new resource name) Status |
---|
| |
---|
subtle | true |
---|
colour | Red |
---|
title | 409 |
---|
|
Conflict (checksum mismatch)
Create a resource with a specified path, or replace the triples associated with 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/n-triples, text/html, text/plain, application/ld+json, message/external-body
Status |
---|
subtle | true |
---|
title | If-UNModified-Since |
---|
|
CONTENT-LOCATION (Optional) A URI to a resource to use instead of the request body
(Optional) A way of providing one or more checksums (SHA-1, SHA-256, MD5) which will be checked against the uploaded content to ensure error-free transfer. The header is interpreted according to RFC-3230 (See 'Example (3): Creating new binary resource at a specified path') If the provided checksum does not match the calculated value for the uploaded file a 409 Conflict will be returned. See Fixity Service for documentation on how to change the default algorithm used during on-demand fixity checking.Query Parameters:
checksum | Checksum of the binary content (in the form urn:sha1:<sha1-hash>). If the checksum doesn't match, a 409 Conflict will be returned.With the value handling=lenient; received="minimal"
allows replacing the properties of a container without having to provide all of the server-managed triples.
Example (1): Updating properties with RDF content
1.1 Perform a GET to the current container's RDF content
Code Block |
---|
curl -X GET -H "Content-TypeAccept: text/turtle" "http://localhost:8080/rest/node/to/update"
Body:
PREFIX dc: <http://purl.org/dc/elements/1.1/>
...
PREFIX ldp: <http://www.w3.org/ns/ldp#>
<http://localhost:8080/rest/node/to/update> a ldp:RDFSource , ldp:Container , <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> , fedora:Container , fedora:Resource , fedora:Resource , <http://www.jcp.org/jcr/mix/1.0created> , <http://www.jcp.org/jcr/mix/1.0lastModified> , <http://www.jcp.org/jcr/mix/1.0referenceable> ;
fedora:primaryType "nt:folder"^^<http://www.w3.org/2001/XMLSchema#string> ;
fedora:created "2014-11-20T16:23:31.684Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
fedora:lastModified "2014-11-20T16:23:31.684Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
fedora:mixinTypes "fedora:Container"^^<http://www.w3.org/2001/XMLSchema#string> , "fedora:Resource"^^<http://www.w3.org/2001/XMLSchema#string> ;
...
<http://fedora.info/definitions/v4/repository#jcr/xml> rdfs:label "jcr/xml"^^<http://www.w3.org/2001/XMLSchema#string> .
<http://54.173.23.104:8080/fcrepo4/rest/test1/fcr:export?format=jcr/xml> dc:format <http://fedora.info/definitions/v4/repository#jcr/xml> . |
1.2 Add your updates (e.g. <> dc:title "some-resource-title" .) under the full result of the GET response in 1.1
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/>
...
PREFIX ldp: <http://www.w3.org/ns/ldp#>
<http://localhost:8080/rest/node/to/update> a ldp:RDFSource , ldp:Container , <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> , fcrepo:Container , fcrepo:Resource , fcrepo:Resource , <http://www.jcp.org/jcr/mix/1.0created> , <http://www.jcp.org/jcr/mix/1.0lastModified> , <http://www.jcp.org/jcr/mix/1.0referenceable> ;
fcrepo:primaryType "nt:folder"^^<http://www.w3.org/2001/XMLSchema#string> ;
fcrepo:created "2014-11-20T16:23:31.684Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
fcrepo:lastModified "2014-11-20T16:23:31.684Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
fcrepo:mixinTypes "fedora:Container"^^<http://www.w3.org/2001/XMLSchema#string> , "fedora:Resource"^^<http://www.w3.org/2001/XMLSchema#string> ;
...
<http://fedora.info/definitions/v4/repository#jcr/xml> rdfs:label "jcr/xml"^^<http://www.w3.org/2001/XMLSchema#string> .
<http://54.173.23.104:8080/fcrepo4/rest/test1/fcr:export?format=jcr/xml> dc:format <http://fedora.info/definitions/v4/repository#jcr/xml> .
<> dc:title "some-resource-title" .
|
Response:
Code Block |
---|
Status: 204 No Content |
Note that to prevent conflicts, the value of the fedora:lastModified
triple in the request must match its current counterpart in the repository. The way to ensure this is to base the changes in a PUT request on the RDF content obtained in an immediately prior GET request, and never try to PUT consecutively, as this will result in a 400 error.
Example (2): Creating a new resource at a specified path
Code Block |
---|
curl -i -X PUT "http://localhost:8080/rest/node/to/create" |
Response:
Code Block |
---|
Status: 201 Created
Response Headers:
ETag: "ef214795c3b9109389ffa542a6c081976e1e9587"
Last-Modified: Mon, 19 May 2014 20:52:57 GMT
Location: http://localhost:8080/rest/node/to/create
Body:
http://localhost:8080/rest/node/to/create |
Example (3): Creating new binary resource at a specified path
Code Block |
---|
curl -X PUT --upload-file image.jpg -H"Content-Type: image/jpeg" -H"digest: sha1=cb1a576f22e8e3e110611b616e3e2f5ce9bdb941" "http://localhost:8080/rest/new/image" |
Response:
Code Block |
---|
Status: 201 Created
Headers:
ETag: "urn:sha1:ea3d29b28522724a82de042a7b7a4e79a1653435"
Last-Modified: Mon, 19 May 2014 20:55:31 GMT
Location: http://localhost:8080/rest/new/image
Body:
http://localhost:8080/rest/new/image |
Note that once a resource is created as an RDF or non-RDF source, it must remain an RDF or non-RDF source. In order to change the type of resource, you must DELETE and then re-create the resource.
Status:
Status |
---|
subtle | true |
---|
colour | Green |
---|
title | 204 |
---|
|
No Content
Status |
---|
subtle | true |
---|
colour | Red |
---|
title | 412 |
---|
|
Precondition Failed
Anchor |
---|
| external-content |
---|
| external-content |
---|
|
Example (4): Creating a new binary resource at a specified path redirecting to external contentto external content
Code Block |
---|
curl -X PUT -H"Content-Type: message/external-body; access-type=URL; URL=\"http://www.example.com/file\"" "http://localhost:8080/rest/node/to/create" |
Response:
Code Block |
---|
Status: 201 Created
Headers:
ETag: "ef214795c3b9109389ffa542a6c081976e1e9587"
Last-Modified: Mon, 19 May 2014 20:52:57 GMT
Link: <http://localhost:8080/rest/node/to/create/fcr:metadata>; rel="describedby"
Location: http://localhost:8080/rest/node/to/create
Body:
|
Code Block |
---|
curl -X PUT -H"Content-Type: message/external-body; access-type=URL; URL=\"http://www.example.com/file\"" "http://localhost:8080/rest/node/to/create" |
Response:
Code Block |
Status: 201 Created
Headers:
ETag: "ef214795c3b9109389ffa542a6c081976e1e9587"
Last-Modified: Mon, 19 May 2014 20:52:57 GMT
Link: <http://localhost:8080/rest/node/to/create/fcr:metadata>; rel="describedby"
Location:
Modify the triples associated with a resource with SPARQL-Update
Request Headers:
Status |
---|
subtle | true |
---|
title | If-UNModified-Since |
---|
|
Status |
---|
subtle | true |
---|
title | Content-Type |
---|
|
Example (1):
Code Block |
---|
curl -X PATCH -H "Content-Type: application/sparql-update" --data-binary "@body.rdf" "http://localhost:8080/rest/node/to/ |
createhttplocalhost:8080/rest/node/to/createpurl.org/dc/elements/1.1/>
INSERT {
<> dc:title "some-resource-title" .
}
WHERE { }
|
Response:
Code Block |
---|
Status: 204 No Content |
Example (2) Update default fixity algorithm
Anchor |
---|
patch | patch | Modify the triples associated with a resource with SPARQL-Update
Request Headers:
Status |
---|
subtle | true |
---|
title | If-UNModified-Since |
---|
|
CONTENT-LOCATION (Optional) A URI to a resource to use instead of the request body
Example (1):
Code Block |
---|
curl -X PATCH -H "Content-Type: application/sparql-update" --data-binary "@body.rdf" "http://localhost:8080/rest/nodebinary/resource/to/update"
Request Body:
PREFIX dcfedoraconfig: <http://purlfedora.orginfo/dcdefinitions/elements/1.1/>v4/config#>
INSERT {
<> dcfedoraconfig:titledefaultDigestAlgorithm "somesha-resource-title256" .
}
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/resource/to/delete" |
Response:
Code Block |
---|
Status: 204 No Content |
Delete requests create "tombstone" resources which need to be removed before you can reuse a URI.
Example:
Code Block |
---|
curl -X GET "http://localhost:8080/rest/some/deleted/resource" |
Code Block |
---|
Status: 410 Gone
Link: <http://localhost:8080/rest/some/deleted/resource/fcr:tombstone>; rel="hasTombstone"
Body:
Discovered tombstone resource at /some/deleted/resource {jcr:primaryType=fedora:Tombstone, jcr:created=2014, departed: 2016-11-20T1614T17:0426:21.131Z, jcr:createdBy=bypassAdmin}17.334-06:00 |
Code Block |
---|
curl -X DELETE "http://localhost:8080/rest/some/deleted/resource/fcr:tombstone" |
Code Block |
---|
Status: 204 No Content |
Create a new node and reuse the deleted URL
Code Block |
---|
curl -X PUT "http://localhost:8080/rest/some/deleted/resource" |
Code Block |
---|
Status: 201 Created |
Status:
Status |
---|
subtle | true |
---|
colour | Green |
---|
title | 204 |
---|
|
No Content Status |
---|
| |
---|
subtle | true |
---|
colour | Red |
---|
title | 404 |
---|
|
Not Found
Example:
Code Block |
---|
curl -i -X HEAD "http://localhost:8080/rest/resource/to/head" |
Response:
Code Block |
---|
Status: 200 OK
ETag: "bbdd92e395800153a686773f773bcad80a51f47b"
Last-Modified: Wed, 28 May 2014 18:31:36 GMT
Last-Modified: Thu, 20 Nov 2014 15:44:32 GMT
Link: <http://www.w3.org/ns/ldp#Resource>;rel="type"
Link: <http://www.w3.org/ns/ldp#Container>;rel="type"
Link: <http://www.w3.org/ns/ldp#BasicContainer>;rel="type"
Accept-Patch: application/sparql-update
Accept-Post: text/turtle,text/rdf+n3,text/n3,application/rdf+xml,application/n-triples,multipart/form-data,application/sparql-update
Allow: MOVE,COPY,DELETE,POST,HEAD,GET,PUT,PATCH,OPTIONS |
Status:
Status |
---|
subtle | true |
---|
colour | Green |
---|
title | 200 |
---|
|
OK Status |
---|
| |
---|
subtle | true |
---|
colour | Red |
---|
title | 404 |
---|
|
Not Found
Example:
Code Block |
---|
curl -i -X OPTIONS "http://localhost:8080/rest/node/to/options" |
Response:
Code Block |
---|
Status: 200 OK
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 |
Status:
Status |
---|
subtle | true |
---|
colour | Green |
---|
title | 200 |
---|
|
OK
Status |
---|
subtle | true |
---|
colour | Red |
---|
title | MOVE |
---|
|
Move a resource (and its subtree) to a new location
Note: A federated resource can be moved within the federation, but not from the federation to the internal repository (or vice versa)
Example (1):
Code Block |
---|
curl -X MOVE -H "Destination: http://localhost:8080/rest/new/path/to/resource" "http://localhost:8080/rest/path/to/resource" |
Response:
Code Block |
---|
Status: 201 Created
Headers:
Location: http://localhost:8080/rest/new/path/to/resource |
Example (2):
Code Block |
---|
curl -X MOVE "http://localhost:8080/rest/path/to/resource" |
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 exist 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/resource" "http://localhost:8080/rest/path/to/resource" |
Response:
Code Block |
---|
Status: 201 Created
Headers:
Location: http://localhost:8080/rest/new/path/to/resource |
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