|
|
(2 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>
| |
| | |
| Or, Use Interactive Editor
| |
| <syntaxhighlight lang="bash">
| |
| firefox http://127.0.0.1:8000
| |
| </syntaxhighlight>
| |
| </blockquote><!-- Example --> | |