From 276ac2aa24166660bc6ffe7601cee44b5d848dae Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Wed, 4 Jan 2023 19:55:30 -0800 Subject: proposals: update status; add some old ones; consistent file names --- proposals/2019-05-10_editgroup_endpoint_prefix.md | 81 +++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 proposals/2019-05-10_editgroup_endpoint_prefix.md (limited to 'proposals/2019-05-10_editgroup_endpoint_prefix.md') diff --git a/proposals/2019-05-10_editgroup_endpoint_prefix.md b/proposals/2019-05-10_editgroup_endpoint_prefix.md new file mode 100644 index 00000000..6794266e --- /dev/null +++ b/proposals/2019-05-10_editgroup_endpoint_prefix.md @@ -0,0 +1,81 @@ + +Status: implemented + +# 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