-
Notifications
You must be signed in to change notification settings - Fork 64
Closed
Milestone
Description
This issue is opened due to b4e86e5
I feel like this presents bad design.
Some downsides of the design:
- It introduces an easy possibility of denial-of-service attacks if server allows client to generate the guids, forcing bad hashcodes to be used in the server. Of course the server can deny client guids by the analysis of whether it should, is difficult.
- The guid should be similar to database primary keys. The server should generate it and it should be immutable.
- The suggested API includes a lot of optionality. Optionality fragments the API when realistically not all vendors will implement the functionality.
Instead I suggest the API will start including an optional field called client_id. guid will be left as server generated and immutable. client_id can be given by the client and can be used by the server to merge newly posted items to existing ones. In case that happens, the server would need to respond with a proper HTTP response code, such as 303 See Other (or maybe something else more suitable).
This suggestion would also cover the originally intended use case mentioned in #189
Noushed
Metadata
Metadata
Assignees
Labels
No labels