Skip to main content
Version: 0.16

ASGI application

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
import os

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

Configuration options​

GraphQL takes the same options that graphql does, but accepts extra options specific to it:

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.

http_handler​

Instance of a class extending ariadne.asgi.handlers.GraphQLHTTPHandler. Used to handle HTTP requests.

If not set, ariadne.asgi.handlers.GraphQLHTTPHandler is used.

websocket_handler​

Instance of a class extending ariadne.asgi.handlers.GraphQLWebsocketHandler. Used to handle WebSocket connections.

If not set, GraphQLWSHandler (implementing subscriptions-transport-ws protocol) is used by default.

See subscriptions documentation for more details.

GraphQLHTTPHandler​

GraphQLHTTPHandler(extensions=None, middleware=None)

Default handler used by Ariadne's ASGI GraphQL app to handle HTTP requests.

Optional arguments​

extensions​

List of extensions or callable returning those. See extensions documentation for more information and examples.

middleware​

List of middlewares or callable returning those. See middleware documentation for more information and examples.