Будет ли graphql запускать преобразователь с дополнительными аргументами - PullRequest
0 голосов
/ 05 августа 2020

Если схема запроса graphql выглядит следующим образом:

user(user_id: Int): User

Будет ли apollo запускать преобразователь, если в запросе будет дополнительный (адрес электронной почты) аргумент, не определенный в схеме запроса?

Я хочу повторять аргументы в резолвере, но не уверен, возможно ли их загрязнить.

PS Если есть документация о том, как apollo разбирает аргументы, буду признателен.

1 Ответ

1 голос
/ 05 августа 2020

В GraphQL схема определяет, какие поля доступны клиенту, в том числе какие аргументы доступны для этого поля и каковы типы этих аргументов. Любой запрос, отправленный в службу GraphQL, будет сначала проверен перед выполнением. Если запрос включает какие-либо посторонние аргументы, он не пройдет проверку и не будет выполнен. Это объясняется здесь в spe c:

Формальная спецификация

  • Для каждого аргумента в документе
  • Пусть аргументName будет именем аргумента.
  • Пусть аргументDefinition будет определением аргумента, предоставленным родительским полем или определением с именем argumentsName.
  • аргументDefinition должен существовать.

Пояснительный текст

Каждый аргумент, предоставленный полю или директиве, должен быть определен в наборе возможных аргументов этого поля или директивы.

Чтобы лучше понять, как работает GraphQL, я бы предложил хотя бы бегло взглянув на spe c.

...