You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.7 KiB
1.7 KiB
Django Debug Middleware
You can debug your GraphQL queries in a similar way to django-debug-toolbar, but outputting in the results in GraphQL response as fields, instead of the graphical HTML interface. Exceptions with their stack traces are also exposed.
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
intoMIDDLEWARE
in theGRAPHENE
settings. - Add the
debug
field into the schema rootQuery
with the valuegraphene.Field(DjangoDebug, name='_debug')
.
from graphene_django.debug import DjangoDebug
class Query(graphene.ObjectType):
# ...
= graphene.Field(DjangoDebug, name='_debug')
debug
= graphene.Schema(query=Query) schema
And in your settings.py
:
= {
GRAPHENE
...'MIDDLEWARE': [
'graphene_django.debug.DjangoDebugMiddleware',
] }
Querying
You can query it for outputting all the sql transactions that happened in the GraphQL request, like:
{
# 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 {
sql {
rawSql
}
exceptions {
message
stack
}
}
}
Note that the _debug
field must be the last field in your query.