Как использовать запрос для пользовательских полей на GraphQL? - PullRequest
0 голосов
/ 18 января 2019

У меня есть эта схема на моем Graphcool:

type User @model {
  id: ID! @isUnique
  name: String!
  email: String!
  password: String!
}

Используя игровую площадку, я могу выполнить это правильно:

query {
  User(id: "1234") {
    id
    name
  }
}

Но этот запрос:

query {
  User(name: "Thomas") {
    id
    name
  }
}

выдает ошибку:

Неизвестный аргумент «имя» в поле «Пользователь» типа «Запрос». (строка 2, колонка 8):
Пользователь (имя: "Томас").

Почему? И как это исправить? Из моего pov, все, что уже есть в модели, может быть запрошено немедленно, верно? Кстати, я очень новичок в GraphQL, и почти нет статей, в которых говорится об этой ошибке (каждый урок так же, как предполагает, что это сработает сразу), поэтому, если необходимо, дайте более подробный ответ.

1 Ответ

0 голосов
/ 18 января 2019

GraphQL по сути не разрешает произвольные запросы к объектам.

Где-то в вашей схеме будет дополнительное объявление типа

type Query {
  User(id: ID!): User
}

Имена в типе Query являются запросами верхнего уровня, которые вы можете выполнить, а аргументы, перечисленные в этом запросе, являются only аргументами, которые они принимают. (Существует соответствующий тип Mutation для мутаций верхнего уровня, который может изменить основное состояние и использовать ключевое слово mutation в запросе.)

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

userByName(name: String!): User

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...