summaryrefslogtreecommitdiffstats
path: root/proposals/20190510_editgroup_endpoint_prefix.md
blob: f517383bbbcb54edca1930b9905bb108fef96e26 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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