Ariadne provides a
GraphQL class that implements a production-ready ASGI application.
Using with an ASGI server
First create an application instance pointing it to the schema to serve:
# in myasgi.py
from ariadne import make_executable_schema
from ariadne.asgi import GraphQL
from mygraphql import type_defs, resolvers
schema = make_executable_schema(type_defs, resolvers)
application = GraphQL(schema)
Then point an ASGI server such as uvicorn at the above instance.
Example using uvicorn:
$ uvicorn myasgi:application
GraphQL takes mostly the same options that
graphql does, but with two differences:
context_valuecan be callable that will be called with single argument (
Requestinstance) and its return value will be used for rest of query execution as
keepalive, if given a number of seconds, will send "keepalive" packets to the client in an attempt to prevent the connection from being dropped due to inactivity.