Middleware는 schema 내의 필드를 검사 하기 위해 사용할 수 있다.
어떤 객체, 함수든resolve(next_middleware, *args)
에 응답할 수 있다면 middleware가 될 수 있다.
resolve(next_middleware, *args)
resolve
를 전송한다.resolve method는 4개의 인자를 받는다.
next
next
를 호출한다.root
info
args
예시
class AuthorizationMiddleware(object):
def resolve(self, next, root, info, **args):
if info.field_name == 'user':
return None
return next(root, info, **args)
field_name
이 'user'일 때만 검사를 계속 진행하도록 한다.next
가 호출된다.result = schema.execute('THE QUERY', middleware=[AuthorizationMiddleware()])