-
Notifications
You must be signed in to change notification settings - Fork 179
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OpenAPI schema for ariadne routes is not generated by starlette #975
Comments
I'm not familiar with how schema generation works in Starlette. Is it possible to have a method on mounted ASGI application that would return this data for Starlette? |
@rafalp It seems like starlette attempts to fetch https://github.com/encode/starlette/blob/master/starlette/schemas.py#L54 ...so it seems that starlette won't be able to introspect ariadne's routes unless ariadne exposes some routes. route = Mount('', graphql)
print(route.routes) # Empty: https://github.com/encode/starlette/blob/master/starlette/routing.py#L384
schemas = SchemaGenerator({})
schemas.get_endpoints(route.routes) # Empty: https://github.com/encode/starlette/blob/master/starlette/schemas.py#L54 |
@rafalp - It looks like there's little ariadne can do here, since it's an app, not just a route. Possibly a better solution to this would be to actually submit a feature proposal for starlette to make |
We could potentially create |
@rafalp - totally agree. This sounds like something that needs to be done in starlette. |
We'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:
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:The text was updated successfully, but these errors were encountered: