Python ariadne: Difference between revisions
From wikinotes
No edit summary |
|||
Line 12: | Line 12: | ||
= Example = | = Example = | ||
<blockquote> | <blockquote> | ||
Define GraphQL API | |||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
#!/usr/bin/env python | #!/usr/bin/env python | ||
Line 41: | Line 43: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Expose GraphQL API | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
# run server | # run server | ||
Line 49: | Line 52: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Execute API query | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
# execute graphql query | # execute graphql query |
Revision as of 12:54, 4 September 2021
A schema-first approach to building graphql APIs in python.
Documentation
official docs https://ariadnegraphql.org/docs/intro
Example
Define GraphQL API
#!/usr/bin/env python # ${PROJECT}/app.py import ariadne from ariadne import asgi # Your GraphQL SDL Schema type_defs = ariadne.gql(""" type Query { hello: String! } """) # Resolvers for Query 'hello' query = ariadne.QueryType() @query.field("hello") def resolve_hello(parent, info): request = info.context["request"] user_agent = request.headers.get("user-agent", "guest") return "Hello, %s!" % user_agent # Build Schema, and create app schema = ariadne.make_executable_schema(type_defs, query) graphql_app = asgi.GraphQL(schema, debug=True)Expose GraphQL API
# run server pip install ariadne pip install uvicorn uvicorn app:graphql_appExecute API query
# execute graphql query curl -X POST \ -H 'Content-Type: application/json' \ -d '{"query": "query { hello }"}' \ http://127.0.0.1:8000