graphene-django/docs/debug.rst

70 lines
1.5 KiB
ReStructuredText
Raw Normal View History

2016-09-21 08:30:36 +03:00
Django Debug Middleware
=======================
You can debug your GraphQL queries in a similar way to
`django-debug-toolbar <https://django-debug-toolbar.readthedocs.org/>`__,
but outputting in the results in GraphQL response as fields, instead of
2016-09-21 08:30:36 +03:00
the graphical HTML interface.
For that, you will need to add the plugin in your graphene schema.
Installation
------------
For use the Django Debug plugin in Graphene:
* Add ``graphene_django.debug.DjangoDebugMiddleware`` into ``MIDDLEWARE`` in the ``GRAPHENE`` settings.
* Add the ``debug`` field into the schema root ``Query`` with the value ``graphene.Field(DjangoDebug, name='_debug')``.
2016-09-21 08:30:36 +03:00
.. code:: python
from graphene_django.debug import DjangoDebug
class Query(graphene.ObjectType):
# ...
debug = graphene.Field(DjangoDebug, name='_debug')
2016-09-21 08:30:36 +03:00
schema = graphene.Schema(query=Query)
And in your ``settings.py``:
.. code:: python
GRAPHENE = {
2019-04-26 18:48:37 +03:00
...
2016-09-21 08:30:36 +03:00
'MIDDLEWARE': [
'graphene_django.debug.DjangoDebugMiddleware',
]
}
Querying
--------
You can query it for outputting all the sql transactions that happened in
2016-09-21 08:30:36 +03:00
the GraphQL request, like:
.. code::
2016-09-21 08:30:36 +03:00
{
# A example that will use the ORM for interact with the DB
allIngredients {
edges {
node {
id,
name
}
}
}
# Here is the debug field that will output the SQL queries
_debug {
2016-09-21 08:30:36 +03:00
sql {
rawSql
}
}
}
Note that the ``_debug`` field must be the last field in your query.