tartiflette-asgi is a wrapper that provides ASGI support for the Tartiflette Python GraphQL engine.
It is ideal for serving a GraphQL API over HTTP, or adding a GraphQL API endpoint to an existing ASGI application (e.g. FastAPI, Starlette, Quart, etc).
Full documentation is available at: https://tartiflette.github.io/tartiflette-asgi
tartiflette-asgi is compatible with:
- Python 3.6+.
- Tartiflette 1.x.
First, install Tartiflette's external dependencies, as explained in the Tartiflette tutorial.
Then, you can install Tartiflette and tartiflette-asgi using pip:
pip install tartiflette "tartiflette-asgi==0.*"You'll also need an ASGI web server. We'll use Uvicorn here:
pip install uvicornCreate an application that exposes a TartifletteApp instance:
from tartiflette import Resolver
from tartiflette_asgi import TartifletteApp
@Resolver("Query.hello")
async def hello(parent, args, context, info):
name = args["name"]
return f"Hello, {name}!"
sdl = "type Query { hello(name: String): String }"
app = TartifletteApp(sdl=sdl, path="/graphql")Save this file as graphql.py, then start the server:
uvicorn graphql:appMake an HTTP request containing a GraphQL query:
curl http://localhost:8000/graphql -d '{ hello(name: "Chuck") }' -H "Content-Type: application/graphql"You should get the following JSON response:
{ "data": { "hello": "Hello, Chuck!" } }To learn more about using tartiflette-asgi, head to the documentation: https://tartiflette.github.io/tartiflette-asgi
Want to contribute? Awesome! Be sure to read our Contributing guidelines.
Changes to this project are recorded in the changelog.
MIT