POST to a URL which does not exist
POST-ing to a URL which does not exist will now create the destination as a ghost node, and create a child node inside of it. In Fedora 5, doing so would result in a 404 response.
Fedora 6 behavior
curl -XPOST http://localhost:8080/rest/doesnotexist/
HTTP/1.1 201 Created
Location: http://localhost:8080/rest/doesnotexist/f6149604-7bdd-41a1-8a06-7a8bd4b071c6 |
Fedora 5 behavior
curl -XPOST http://localhost:8080/rest/doesnotexist/
HTTP/1.1 404 Not Found |
Memento Changes
- Mementos can no longer be created by specifying a timestamp, and are always created on the current resource state at the current time.
- Mementos cannot be deleted.
Conditional PUT using If-Match Changes
- Etags are calculated differently, and can no longer be relied upon for use with the If-Match header for PUT requests.
- To perform a conditional PUT that works for both Fedora 5 and 6, use X-State-Token with X-If-State-Token instead.
Modifications to the same Resource in Separate Transactions
- If the same resource is modified in two different concurrent transactions, the first modification will succeed, but the second modification will fail with a 409 conflict with the following message: "Cannot update info:fedora/<id> because it is being updated by another transaction." This holds true for containers and binaries.
- In Fedora 5, both modifications would succeed, and whichever transaction committed last would be the final state of the object
GET Prefer return=minimal removed
It was determined that this option was not listed in either the Fedora or the LDP specification, so it was removed. To reproduce the previous behavior, you can use the following header:
Prefer: return=representation; include="http://www.w3.org/ns/ldp#PreferMinimalContainer"; omit="http://fedora.info/definitions/fcrepo#ServerManaged" |