Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
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
**