diff options
| -rw-r--r-- | proposals/20190510_editgroup_endpoint_prefix.md | 79 | 
1 files changed, 79 insertions, 0 deletions
| 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/<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 + | 
