A lightweight API for indexing metadata and links to existing derivatives into Avalon.
Version | Date | Description |
---|---|---|
0.1 | 13 October 2015 | Initial Draft |
Actions
- Avalon Ingest API
- collections
- bar
items
GET items/:pid Retrieves information on the item
POST items/:pid Creates an item
PUTS items/:pid Updates an item
JSON:
{mods: {mods converted to JSON}, collection: collection_id, derivatives: [location_of_derivatives], dark: [Boolean] }
GET returns the mods (or otherwise specified subset of metadata), POST requires everything to be able to create a new item, PUTS updates just the supplied JSON.
Code | Description |
---|---|
200 | Okay |
201 | Created |
202 | Accepted, Queued |
400 |
Open Issues
- Should we be strict with CRUD? E.g. If an item exists and a post command, versus put, is issued should it update or return a code existing the item already exists? Also if a PUT is attempted on an item that doesn't exist should we fail or just create the item? Specifically when a user puts and there is no item to update, do they care?
- Regarding the 202 Code, this may not be needed, but I put in place in the event we have to accept API requests and wait to go test streaming (make sure the derivatives are there). This is a worst case if our file storage is too slow (which would be really bad of course).