如何在context
的内容传递给解析器功能之前进行修改?
答案 0 :(得分:0)
查看特殊Ariadne类型ContextValue的文档。
GraphQL类接受关键字参数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'}