Python ariadne: Difference between revisions

From wikinotes
 
(3 intermediate revisions by the same user not shown)
Line 10: Line 10:
</blockquote><!-- Documentation -->
</blockquote><!-- Documentation -->


= Example =
= Notes =
<blockquote>
<blockquote>
 
{|
Define GraphQL API
|-
<syntaxhighlight lang="python">
| [[ariadne basics]]
#!/usr/bin/env python
|-
# ${PROJECT}/app.py
| [[ariadne queries]]
 
|-
import ariadne
|}
from ariadne import asgi
</blockquote><!-- Notes -->
 
 
# 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)
</syntaxhighlight>
 
Expose GraphQL API
<syntaxhighlight lang="bash">
# run server
pip install ariadne
pip install uvicorn
 
uvicorn app:graphql_app
</syntaxhighlight>
 
Execute API query
<syntaxhighlight lang="bash">
# execute graphql query
curl -X POST \
    -H 'Content-Type: application/json' \
    -d '{"query": "query { hello }"}' \
    http://127.0.0.1:8000
</syntaxhighlight>
</blockquote><!-- Example -->

Latest revision as of 13:53, 4 September 2021

A schema-first approach to building graphql APIs in python.

Documentation

official docs https://ariadnegraphql.org/docs/intro

Notes

ariadne basics
ariadne queries