С какой стороны происходит выбор для graphql? - PullRequest
1 голос
/ 23 января 2020

Предположим, у меня есть этот тип:

type User {
  name: string!
}

Но программа-резолвер возвращает этот объект:

{
  "name": "john",
  "topSecretPassword": "123456"
}

Клиент graphql не знает, как выбрать поле topSecretPassword потому что это вне схемы. Поле отправлено на клиентскую сторону и удалено? Поле игнорируется на стороне сервера?

1 Ответ

1 голос
/ 23 января 2020

Служба GraphQL возвращает только запрошенные поля. Если поле не запрошено, оно не будет в ответе. Если поле не существует в схеме, его нельзя запросить.

Это верно независимо от того, что возвращено в распознавателе. Значение, возвращаемое в резольвере, всегда принудительно в соответствующий тип. В случае типа объекта его отдельные поля разрешаются в соответствии с их собственными определителями.

Для подробного объяснения того, как работает выполнение, пожалуйста, обратитесь к spe c.

...