Как правильно объявить запрос GraphQL без параметров. - PullRequest
0 голосов
/ 12 октября 2018

Я использую против кода + graphql-cli для проверки и раскраски схемы.В следующем объявлении (в файле схемы graphql):

type Query {
  users(): Int
}

Приведенное выше объявление users помечено как ошибка en, но оно не создает никаких проблем (или предупреждений) сервером - онотолько против кода и graphql lint сообщая об этом как об ошибке:

2:9 Syntax Error: Expected Name, found )  undefined

Если я добавлю параметр в запрос, например:

type Query {
  users(n: Int): Int
}

, тогда vs не сообщит о проблемекод или graphql-cli.Как правильно объявить запрос graphql без параметров.

1 Ответ

0 голосов
/ 12 октября 2018

Запросы, которые вы указываете в своей схеме, ведут себя так же, как и любое другое поле определенного типа (основное отличие состоит в том, что их тип связан с определенной операцией).Если вы не хотите объявлять какие-либо аргументы для определенного поля, вы просто опускаете скобки полностью.То же самое касается запросов и мутаций:

type Query {
  users: Int
}

Из спецификации:

Поля - это концептуально функции, которые возвращают значения и иногда принимают аргументы, которые изменяют их поведение.Эти аргументы часто отображаются непосредственно на аргументы функции в реализации сервера GraphQL.

Поэтому стоит указать, что любое поле типа может иметь аргументы.Например, запрос может выглядеть так:

query UsersQuery {
  users {
    name
    posts (onlyNew: true) {
      title
    }
  }
}
...