Write OpenAPI specs for the supported API operations (CRUD, service info, export, publication to Zenodo etc).
Please roughly follow the structure of the GA4GH Cloud API specs as examples, but make sure to write only a single file (not like in DRS). Also, the GA4GH specs are not always very well written, partly because they were converted from Swagger/OpenAPI 2.x to 3.x without making (good) use of the features added in 3.x, so make sure to study the OpenAPI documentation well to see what's possible.
In particular, make use of attributes like readOnly/writeOnly and oneOf/anyOf/allOf to minimize the number of schemas we have to write and maintain.
We need to get the specs right first, otherwise we will be going back and forth with the controller implementation, which is a hassle.
Write OpenAPI specs for the supported API operations (CRUD, service info, export, publication to Zenodo etc).
Please roughly follow the structure of the GA4GH Cloud API specs as examples, but make sure to write only a single file (not like in DRS). Also, the GA4GH specs are not always very well written, partly because they were converted from Swagger/OpenAPI 2.x to 3.x without making (good) use of the features added in 3.x, so make sure to study the OpenAPI documentation well to see what's possible.
In particular, make use of attributes like
readOnly
/writeOnly
andoneOf
/anyOf
/allOf
to minimize the number of schemas we have to write and maintain.We need to get the specs right first, otherwise we will be going back and forth with the controller implementation, which is a hassle.