Feature #40907: mgr/dashboard: REST API improvements
mgr/dashboard: evaluate FastAPI
General - Back-end
Pull request ID:
This recent framework, FastAPI, could well suit all the needs we have for Ceph API:
- Typed (Python hints from Pydantic)
- OpenAPI spec generation from Python type hints.
- Fully asynchronous (ASGI), vs. Synchronous Cherrypy (WSGI). It nativelly supports Websockets too.
- Similar syntax to our custom implementation (Flask-like).
- Most distros don't package it or its major dependencies (Pydantic, Starlette).
- A containerized deployment could work, but that would first require to change the way of interacting between ceph-mgr and mgr modules (containers IPC/shared memory?).