如何正确声明不带参数的GraphQL查询。

Rob*_*mba 5 lint graphql visual-studio-code

我正在使用vs代码+ graphql-cli来验证和整理模式。在以下声明中(在graphql模式文件中):

type Query {
  users(): Int
}
Run Code Online (Sandbox Code Playgroud)

users上面的声明被标记为en错误,但是服务器不会造成任何问题(或警告)-只是vs代码并将其graphql lint报告为错误:

2:9 Syntax Error: Expected Name, found )  undefined
Run Code Online (Sandbox Code Playgroud)

如果我向查询添加参数,例如:

type Query {
  users(n: Int): Int
}
Run Code Online (Sandbox Code Playgroud)

则vs代码或graphql-cli不会报告任何问题。如何正确声明不带参数的graphql查询。

Dan*_*den 13

您在架构中指定的查询的行为与特定类型上的任何其他字段一样(主要区别是它们的类型链接到特定操作)。如果您不想为特定字段声明任何参数,则只需完全省略括号即可。查询和变异也是如此:

type Query {
  users: Int
}
Run Code Online (Sandbox Code Playgroud)

从规格:

字段在概念上是返回值的函数,并且偶尔接受会更改其行为的参数。这些参数通常直接映射到GraphQL服务器实现中的函数参数。

因此,值得指出的是,任何Type字段都可以有参数。例如,查询可能如下所示:

query UsersQuery {
  users {
    name
    posts (onlyNew: true) {
      title
    }
  }
}
Run Code Online (Sandbox Code Playgroud)