Измените контекст в Ариадне перед распознавателями - PullRequest
0 голосов
/ 28 марта 2020

Как изменить содержимое context до его передачи функциям распознавателя?

1 Ответ

0 голосов
/ 28 марта 2020

Извлечение документации для специального типа Ariadne ContextValue .

Класс GraphQL принимает аргумент ключевого слова context_value. Он может быть любого типа и будет установлен в качестве контекста.

Если передан вызываемый объект, он будет вызван с request в качестве аргумента.

Итак:

  1. Создание функции для построения нужного контекста

    def get_context_value(request):
        return {'request': request, 'test': "TEST"}
    
  2. Передача функции при инициализации GraphQL:

    app = GraphQL(
        schema,
        context_value=get_context_value,
        debug=True,
    )
    

Значение контекста в резольверах:

{'request': <starlette.requests.Request object at 0x7fc363dbf370>, 'test': 'TEST'}
...