OpenAPI schema for ariadne routes is not generated by starlette
See original GitHub issueWe’re trying to generate an OpenAPI schema using starlette.schemas.SchemaGenerator
, however it does not include any definitions for ariadne.
As per starlette’s docs:
Schema generation works by inspecting the routes on the application through app.routes, and using the docstrings or other attributes on the endpoints in order to determine a complete API schema.
Is it possible to add a docstring into ariadne’s graphql endpoint, or allow it to be configured manually so that it can be picked up by ariadne’s schema generator?
EDIT: One possible workaround is to wrap ariadne’s route with another route, but it would be great if this was available out of the box.
EDIT 2: Seems like SchemaGenerator.get_endpoints
doesn’t find ariadne’s endpoints. We’re using it as follows:
class GraphQLAdapter(Starlette):
SCHEMA_PATH = ...
def __init__(self):
...
schema = make_executable_schema(...)
graphql = GraphQL(schema)
super().__init__(
routes=[
Mount('', graphql),
],
)
Issue Analytics
- State:
- Created 10 months ago
- Comments:5 (2 by maintainers)
We could potentially create
property(routes)
and use that, but then we will have an ASGI app that creates Starlette routes that wrap its methods and that doesn’t sound like good approach to me.@rafalp - totally agree. This sounds like something that needs to be done in starlette. I’ve started a discussion for this: https://github.com/encode/starlette/discussions/1958