Feature #24763
closedFeature #40907: mgr/dashboard: REST API improvements
mgr/dashboard: Automatic generation of REST API documentation based on Python docstrings
100%
Description
In the current implementation of the Ceph-Dashboard we already generate a Swagger-UI page with the available REST API endpoints that are implemented in the dashboard backend. This generation is automatic and it's done when the dashboard module starts.
The REST API endpoints correspond to Python class methods decorated with `@Endpoint`, and, in the special case of the REST controllers, correspond to the following class methods: `list`, `create`, `get`, `set`, `delete`, `bulk_set`, `bulk_delete`.
The objective of this feature is to parse the docstrings of the endpoint methods and add these to the Swagger-UI page to document each endpoint.
We could also agree on a particular python docstring format to allow the specification of the parameters types and return types and add also add that information to the Swagger-UI page.
Updated by Lenz Grimmer over 5 years ago
- Assignee set to Tina Kallio
- Target version set to v14.0.0
Updated by Tina Kallio over 5 years ago
There is no suitable off-the-shelf parser that can be used to accomplish this.
Another way to obtain information for the documentation directly from the code is to use annotations and decorators. This approach will be used instead.
However, function annotations can not be used since it is not compatible with Python2.
It is desirable but not mandatory that the solution includes responses.
Updated by Tina Kallio about 5 years ago
Updated by Lenz Grimmer about 5 years ago
- Status changed from New to Fix Under Review
Updated by Lenz Grimmer about 5 years ago
- Subject changed from dashboard: Automatic generation of REST API documentation based on Python docstrings to mgr/dashboard: Automatic generation of REST API documentation based on Python docstrings
Updated by Tina Kallio about 5 years ago
- Status changed from Fix Under Review to Resolved
- % Done changed from 0 to 100
Fix with PR https://github.com/ceph/ceph/pull/26227
Updated by Lenz Grimmer almost 5 years ago
- Related to Bug #40027: mgr/dashboard: REST API: OpenAPI docs require internet connection added
Updated by Ernesto Puerta about 3 years ago
- Project changed from mgr to Dashboard
- Category changed from 132 to General