diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2023-01-04 19:55:30 -0800 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2023-01-04 20:18:25 -0800 |
commit | 276ac2aa24166660bc6ffe7601cee44b5d848dae (patch) | |
tree | 8a35ce06e7ab9e6755b24abc41dee1115cf62788 /proposals/2019-05-10_editgroup_endpoint_prefix.md | |
parent | ee46c33544941a5104182a2e221e841a32cbbf78 (diff) | |
download | fatcat-276ac2aa24166660bc6ffe7601cee44b5d848dae.tar.gz fatcat-276ac2aa24166660bc6ffe7601cee44b5d848dae.zip |
proposals: update status; add some old ones; consistent file names
Diffstat (limited to 'proposals/2019-05-10_editgroup_endpoint_prefix.md')
-rw-r--r-- | proposals/2019-05-10_editgroup_endpoint_prefix.md | 81 |
1 files changed, 81 insertions, 0 deletions
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/<editgroup_id>/release/<ident> + PUT: update_release(editgroup_id, ident, entity) + DELETE: delete_release(editgroup_id, ident) + + /editgroup/<editgroup_id>/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/<editgroup_id>/release/edit/<edit_uuid> + DELETE: delete_release_edit(editgroup_id, edit_uuid) + + +## New Webface URLs + + /editgroup/<editgroup_id>/release/<ident> + 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/<editgroup_id>/release/<ident> + GET: get_editgroup_release(editgroup_id, ident) => entity revision + + /editgroup/<editgroup_id>/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 + |