...
Code Block |
---|
|
# GET request to LDPCv
curl http://localhost/rest/a/fcr:versions -H "Accept: application/link-format" -v
< HTTP/1.1 200 OK
< Date: Thu, 21 Jun 2017 00:06:50 GMT
< Server: Apache
< Content-Type: application/link-format
< Allow: GET, HEAD, OPTIONS, POST, PATCH, DELETE
< Accept-Post: text/turtle,text/rdf+n3,text/n3,application/rdf+xml,application/n-triples,application/ld+json,multipart/form-data,application/sparql-update
< Accept-Patch: application/sparql-update
< Connection: close
<http://localhost/rest/a>;rel="original timegate",
<http://localhost/rest/a/fcr:versions>
; rel="self";type="application/link-format"
; from="Tue, 20 Jun 2016 18:02:59 GMT"
; until="Wed, 09 Apr 2017 20:30:51 GMT",
<http://localhost/rest/a/fcr:versions/20160620180259356>; rel="memento";datetime="Tue, 20 Jun 2016 18:02:59 GMT",
<http://localhost/rest/a/fcr:versions/version_1>; rel="memento";datetime="Fri, 06 Jan 2017 18:50:11 GMT",
<http://localhost/rest/a/fcr:versions/20170409203051112>; rel="memento";datetime="Wed, 09 Apr 2017 20:30:51 GMT", |
Anchor |
---|
| create-ldprm-ex |
---|
| create-ldprm-ex |
---|
|
Example Interactions to Version a Resource or a Tree Code Block |
---|
# 1 - Create LDPRm of single resource
1) curl -XPOST /a/fcr:versions -H "Depth: 0"
a) Create LDPRm /a/fcr:versions/20170919080311 in LDPCv
2) GET /a/fcr:versions/20170919080311
</a/fcr:versions/20170919080311> ldp:contains </a/b>
3) GET /a
</a> ldp:contains </a/b>
# 2 - Create LDPRm of tree
1) curl -XPOST /a/fcr:versions -H "Depth: infinity"
a) Create LDPRm /a/fcr:versions/20170919080311
b) Create LDPRm /a/b/fcr:versions/20170919080311
2) GET /a/fcr:versions/20170919080311
</a/fcr:versions/20170919080311> ldp:contains </a/b>
3) GET /a
</a> ldp:contains </a/b> |
Note: if in example 2 the LDPRm were to have relationship:
</a/fcr:versions/20170919080311> ldp:contains </a/b/fcr:versions/20170919080311>
there would still be multiple parents containing
How does delete behave when multiple LDPRs (a LDPRv and a LDPRm) both ldp:contains the same child? What happens if you delete the LDPRm?
Anchor |
---|
| delete-ref-ldprm |
---|
| delete-ref-ldprm |
---|
|
Handling Deletion of Referenced Resources / MementosApproach 1 - Prevent deletion
Code Block |
---|
1) Given two resources, /a and /b, where:
</a> dc:related </b>
2) Create a version of /a with `POST /a/fcr:versions`, which creates LDPRm:
/a/fcr:versions/20170919162455
3) Delete /b
< HTTP/1.1 412 Precondition failed
< Date: Tue, 19 Sep 2017 19:55:15 GMT
< Content-Type: text/plain
< Content-Length: 77
< Server: Jetty(9.2.3.v20140905)
Cannot delete resource with incoming relationships from immutable resources. |
Approach 2 - Allow deletion, ignore referential integrity
Code Block |
---|
1) Given two resources, /a and /b, where:
</a> dc:related </b>
2) Create a version of /a with `POST /a/fcr:versions`, which creates LDPRm:
/a/fcr:versions/20170919162455
3) Delete /b
< HTTP/1.1 204
4) Get /a
</a> dc:related </b>
5) Get /b
< HTTP/1.1 410 Gone |
Draft Tickets
...