|
|
Line 18: |
Line 18: |
| |} | | |} |
| </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 -->
| |