You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 4
Next »
Table of Contents
|
Problem
In order to consider Fedora's REST API complete, we need to have functional equivalents to API-M's relationship management methods.
This includes the ability to:
- add and remove relationships incrementally
- get a subset of relationships
Approaches
We talked about a couple approaches during the November 3rd Committer Meeting.
Strawman Proposal
Define a generic method (or set of methods) for applying partial changes to datastreams.
Implement it for RELS-EXT and RELS-INT so that additions and deletions can be made via SPARQL update.
Example:
- HTTP Verb: PUT
- URL: /objects/{pid}/fedora-system:/updateDatastream?dsID={dsID}&type=sparql-update
- Body: A SPARQL/Update document (UTF-8?) to apply to the datastream
- Successful response:
- Code: 201
- Location: URL to datastream
- Failed response:
- If datastream doesn't exist: TBD
- If input document is malformed: TBD
Notes from 11/3 Committer Meeting
HTTP PUT/POST to RELS-EXT/INT.
SPARQL Update
URL Parameter, "kind of update" (possibly could be trigger)
....could be alternative to mime type (some clients can't control headers well)
Validation would happen.
Have it use fedora-system:sdef...accept a POST.
Doesn't require that we do it in the general case.
PUT should be idempotent (to replace the entire datastream)
POST has no such requirement (so to add/delete specific relationships)
Important: Make sense of it for users
|
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))