Replace hand-written OpenAPI specification by an easier to maintain auto-generated one
This uses the utoipa
crate to automatically generated our OpenAPI specification which prevents it from ever being out of sync with the actually defined types. Furthermore, it drives home the point that this specification is the main point of documentation for our metadata schema by deriving its contents from the in-source doc comments of the related types.
I took care to move all hand-written descriptions from the existing specification into doc comments in the source so the automatically generated one should not regress compared to the hand-written one.
I also took the opportunity to bump Swagger UI to the current stable version v5.9.1.
Furthermore, since we do not write the OpenAPI specification by hand any more we do not need to care whether version 3.0 or 3.1 is used but can leave the details to the generator.
Closes #184 (closed)
Closes #238 (closed)