For executing a query a schema, you can directly call the execute method on it.
schema = Schema(...)
result = schema.execute("{ name }")result represents the result of execution. result.data is the result of executing the query, result.errors is None if no errors occurred, and is a non-empty list if an error occurred.
You can pass context to a query via context.
class Query(ObjectType):
name = String()
def resolve_name(root, info):
return info.context.get("name")
schema = Schema(Query)
result = schema.execute("{ name }", context={"name": "Syrus"})You can pass variables to a query via variables.
class Query(ObjectType):
user = Field(User, id=ID(required=True))
def resolve_user(root, info, id):
return get_user_by_id(id)
schema = Schema(Query)
result = schema.execute(
"""
query getUser($id: ID) {
user(id: $id) {
id
firstName
lastName
}
}
""",
variables={"id": 12},
)