在解析器之前修改 Ariadne 中的上下文
Modify the context in Ariadne before the resolvers
如何在传递给解析器函数之前修改 context
的内容?
查看特殊 Ariadne 类型的文档 ContextValue。
GraphQL class 接受关键字参数 context_value
。它可以是任何类型,并将被设置为上下文。
如果传递了一个可调用对象,那么它将以 request
作为参数被调用。
所以:
创建一个函数来构建所需的上下文
def get_context_value(request):
return {'request': request, 'test': "TEST"}
在GraphQL初始化时传递函数:
app = GraphQL(
schema,
context_value=get_context_value,
debug=True,
)
解析器中的上下文值:
{'request': <starlette.requests.Request object at 0x7fc363dbf370>, 'test': 'TEST'}
如何在传递给解析器函数之前修改 context
的内容?
查看特殊 Ariadne 类型的文档 ContextValue。
GraphQL class 接受关键字参数 context_value
。它可以是任何类型,并将被设置为上下文。
如果传递了一个可调用对象,那么它将以 request
作为参数被调用。
所以:
创建一个函数来构建所需的上下文
def get_context_value(request): return {'request': request, 'test': "TEST"}
在GraphQL初始化时传递函数:
app = GraphQL( schema, context_value=get_context_value, debug=True, )
解析器中的上下文值:
{'request': <starlette.requests.Request object at 0x7fc363dbf370>, 'test': 'TEST'}