2016-09-12 07:47:34 +03:00
|
|
|
|
Getting started
|
|
|
|
|
===============
|
|
|
|
|
|
2016-11-05 17:31:56 +03:00
|
|
|
|
What is GraphQL?
|
|
|
|
|
----------------
|
|
|
|
|
|
|
|
|
|
For an introduction to GraphQL and an overview of its concepts, please refer
|
2017-03-10 11:05:01 +03:00
|
|
|
|
to `the official introduction <http://graphql.org/learn/>`_.
|
2016-11-05 17:31:56 +03:00
|
|
|
|
|
2016-09-12 07:47:34 +03:00
|
|
|
|
Let’s build a basic GraphQL schema from scratch.
|
|
|
|
|
|
|
|
|
|
Requirements
|
|
|
|
|
------------
|
|
|
|
|
|
2017-07-24 10:01:44 +03:00
|
|
|
|
- Python (2.7, 3.4, 3.5, 3.6, pypy)
|
|
|
|
|
- Graphene (2.0)
|
2016-09-12 07:47:34 +03:00
|
|
|
|
|
|
|
|
|
Project setup
|
|
|
|
|
-------------
|
|
|
|
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
|
2017-10-26 10:22:59 +03:00
|
|
|
|
pip install "graphene>=2.0"
|
2016-09-12 07:47:34 +03:00
|
|
|
|
|
|
|
|
|
Creating a basic Schema
|
|
|
|
|
-----------------------
|
|
|
|
|
|
|
|
|
|
A GraphQL schema describes your data model, and provides a GraphQL
|
|
|
|
|
server with an associated set of resolve methods that know how to fetch
|
|
|
|
|
data.
|
|
|
|
|
|
|
|
|
|
We are going to create a very simple schema, with a ``Query`` with only
|
2018-12-26 23:32:22 +03:00
|
|
|
|
one field: ``hello`` and an input name. And when we query it, it should return ``"Hello
|
2018-10-16 14:59:25 +03:00
|
|
|
|
{argument}"``.
|
2016-09-12 07:47:34 +03:00
|
|
|
|
|
|
|
|
|
.. code:: python
|
|
|
|
|
|
|
|
|
|
import graphene
|
|
|
|
|
|
|
|
|
|
class Query(graphene.ObjectType):
|
2018-10-16 14:59:25 +03:00
|
|
|
|
hello = graphene.String(argument=graphene.String(default_value="stranger"))
|
2016-09-12 07:47:34 +03:00
|
|
|
|
|
2018-10-16 14:59:25 +03:00
|
|
|
|
def resolve_hello(self, info, argument):
|
|
|
|
|
return 'Hello ' + argument
|
2016-09-12 07:47:34 +03:00
|
|
|
|
|
|
|
|
|
schema = graphene.Schema(query=Query)
|
|
|
|
|
|
|
|
|
|
Querying
|
|
|
|
|
--------
|
|
|
|
|
|
2016-10-07 11:56:01 +03:00
|
|
|
|
Then we can start querying our schema:
|
2016-09-12 07:47:34 +03:00
|
|
|
|
|
|
|
|
|
.. code:: python
|
|
|
|
|
|
|
|
|
|
result = schema.execute('{ hello }')
|
2017-10-05 06:09:18 +03:00
|
|
|
|
print(result.data['hello']) # "Hello stranger"
|
2016-09-12 07:47:34 +03:00
|
|
|
|
|
2018-10-16 14:59:25 +03:00
|
|
|
|
# or passing the argument in the query
|
|
|
|
|
result = schema.execute('{ hello (argument: "graph") }')
|
|
|
|
|
print(result.data['hello']) # "Hello graph"
|
|
|
|
|
|
2016-09-12 07:47:34 +03:00
|
|
|
|
Congrats! You got your first graphene schema working!
|