Middleware

Вы можете использоватьmiddlewareдля того, чтобы повлиять на вычисление полей в Вашей схеме.

Middleware это любой объект, который отвечает наresolve(*args,next_middleware).

Внутри этого метода он должен либо:

  • Отправитьresolveв следующую middleware для продолжения вычислений; либо:
  • Завершить вычисления и вернуть значение.

Резолв аргументов

Метод resolveвызывается с несколькими аргументами:

  • next представляет запуск цепочки. Вызовитеnextдля продолжения вычислений.
  • root это объект, переданный через запрос.
  • infois это объект Graphene, содержащий информацию о resolver.
  • args это хэш аргументов, переданных в поле.

Пример

Эта middleware продолжает вычисления только в случае, если field_name не равно 'user':

class AuthorizationMiddleware(object):
    def resolve(self, next, root, info, **args):
        if info.field_name == 'user':
            return None
        return next(root, info, **args)

Попробуйте выполнить с ее помощью:

result = schema.execute('THE QUERY', middleware=[AuthorizationMiddleware()])

results matching ""

    No results matching ""