meta_version properties are now set to an integer serial number that is supposed to be incremented upon changes of non-behavioral changes to a tool
Assumptions on validated and has_checker properties have been lifted so that the user can manually specify these
Version identifiers can now be optionally supplied by the user and are only auto-generated if absent; a user trying to POST a request with multiple versions and duplicate version identifiers returns a BadRequest error; this behavior has been documented in the specs
The toolclass property can (and must) now be supplied by the user
Some methods, attributes, data models etc. have been renamed
Add PUT /tools/{id} endpoint
Uses the same controller as POST /tools but lets the user define the tool ID
Creates or replaces a tool (take care to check first whether a tool exist if overwriting is not desired; in a real-world implementation this should probably be implemented in a way that only maintainers of a tool can overwrite it, otherwise 403/Forbidden should be returned)
Compared to POST has lower potential to result in multiple entries for the same tool (because identifier is not opaque and overwriting existing tools by third parties can be prevented; POST will always create a resource)
Add DELETE /tools/{id} endpoint
Deletes tool with specified ID, if available; otherwise raises 404/Not Found.
Refactor/simplify
POST /tools
meta_version
properties are now set to an integer serial number that is supposed to be incremented upon changes of non-behavioral changes to a toolvalidated
andhas_checker
properties have been lifted so that the user can manually specify thesePOST
a request with multiple versions and duplicate version identifiers returns aBadRequest
error; this behavior has been documented in the specstoolclass
property can (and must) now be supplied by the userAdd
PUT /tools/{id}
endpointPOST /tools
but lets the user define the tool ID403/Forbidden
should be returned)POST
has lower potential to result in multiple entries for the same tool (because identifier is not opaque and overwriting existing tools by third parties can be prevented;POST
will always create a resource)Add
DELETE /tools/{id}
endpoint404/Not Found
.