Python ariadne: Difference between revisions

From wikinotes
No edit summary
 
(One intermediate revision by the same user not shown)
Line 15: Line 15:
|-
|-
| [[ariadne basics]]
| [[ariadne basics]]
|-
| [[ariadne queries]]
|-
|-
|}
|}
</blockquote><!-- Notes -->
</blockquote><!-- Notes -->
= Example =
<blockquote>
Define GraphQL API
<syntaxhighlight lang="python">
#!/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)
</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>
Or, Use Interactive Editor
<syntaxhighlight lang="bash">
firefox 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