Измените контекст в Ариадне перед резолверами
Как изменить содержание context
до того, как он будет передан функциям распознавателя?
1 ответ
Решение
Ознакомьтесь с документацией по специальному типу 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'}