Wiki Markup |
---|
In order to consider Fedora's REST API functionally complete, we need to have built-in support for adding, modifying, and removing RDF relationships. |
...
h1. 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 h1. 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 ** |