From c995fe9ef26cadf8401bd1993184321d6a8802ac Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Tue, 14 May 2019 17:10:01 -0700 Subject: endpoint change notes --- proposals/20190510_editgroup_endpoint_prefix.md | 79 +++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 proposals/20190510_editgroup_endpoint_prefix.md (limited to 'proposals') diff --git a/proposals/20190510_editgroup_endpoint_prefix.md b/proposals/20190510_editgroup_endpoint_prefix.md new file mode 100644 index 00000000..f517383b --- /dev/null +++ b/proposals/20190510_editgroup_endpoint_prefix.md @@ -0,0 +1,79 @@ + +# Editgroup API Endpoint Prefixes + +In summary, change the API URL design such that entity mutations (create, +update, delete) happen under the URL path of an editgroup, with the +`editgroup_id` as a path component, instead of being REST actions on the +canonical URL with `editgroup_id` as a query parameter. + +This is a fairly large/systemic breaking change, though it should not change +code *structure* much (just argument order/passing), and requires no SQL +changes. It may remove corner-case features (like non-auto match operations?). + + +## Renamed API URLs + +For all entity types: + + /editgroup//release/ + PUT: update_release(editgroup_id, ident, entity) + DELETE: delete_release(editgroup_id, ident) + + /editgroup//release + POST: create_release(editgroup_id, entity) + + /editgroup/auto/release/batch + POST: create_release_auto_batch(editgroup, [entity]) + => actually new ReleaseAutoBatch(editgroup, entity_list) body + + /editgroup//release/edit/ + DELETE: delete_release_edit(editgroup_id, edit_uuid) + + +## New Webface URLs + + /editgroup//release/ + GET: shows the (potentially WIP) entity as of this editgroup + + Some way to delete an edit from an editgroup + + +## Future: New API URLs + +Will not actually implement these for now. + +For all entity types: + + /editgroup//release/ + GET: get_editgroup_release(editgroup_id, ident) => entity revision + + /editgroup//release/batch + POST: create_release_batch([entity]) + + +## SCRATCH + +container +creator +file +fileset +webcapture +release +work + +per entity: +x auto_batch type +x create_* path and editgroup_id parameter +x delete old parameter +x batch: +x url +x operationId +x new single parameter +x return type +x put/delete +x new url section +x remove old editgroup_id parameters (2x) +x delete edit +x new url section +x remove old edit_id + -- cgit v1.2.3