如何正确声明不带参数的 GraphQL 查询。
How to correctly declare a GraphQL query without parameters.
我正在使用 vs code + graphql-cli 来验证和检查架构。在以下声明中(在 graphql 模式文件中):
type Query {
users(): Int
}
上面的 users
声明被标记为 en 错误,但服务器不会造成任何问题(或警告)——它只是 vs 代码并且 graphql lint
将其报告为错误:
2:9 Syntax Error: Expected Name, found ) undefined
如果我在查询中添加一个参数,例如:
type Query {
users(n: Int): Int
}
那么vs code或者graphql-cli都没有报错。
如何正确声明不带参数的 graphql 查询。
您在架构中指定的查询的行为与特定类型的任何其他字段一样(主要区别在于它们的类型链接到特定操作)。如果您不想为特定字段声明任何参数,则只需完全省略括号即可。查询和突变也是如此:
type Query {
users: Int
}
来自规范:
Fields are conceptually functions which return values, and occasionally accept arguments which alter their behavior. These arguments often map directly to function arguments within a GraphQL server’s implementation.
因此值得指出的是任何类型的字段都可以有参数。例如,查询可能如下所示:
query UsersQuery {
users {
name
posts (onlyNew: true) {
title
}
}
}
我正在使用 vs code + graphql-cli 来验证和检查架构。在以下声明中(在 graphql 模式文件中):
type Query {
users(): Int
}
上面的 users
声明被标记为 en 错误,但服务器不会造成任何问题(或警告)——它只是 vs 代码并且 graphql lint
将其报告为错误:
2:9 Syntax Error: Expected Name, found ) undefined
如果我在查询中添加一个参数,例如:
type Query {
users(n: Int): Int
}
那么vs code或者graphql-cli都没有报错。 如何正确声明不带参数的 graphql 查询。
您在架构中指定的查询的行为与特定类型的任何其他字段一样(主要区别在于它们的类型链接到特定操作)。如果您不想为特定字段声明任何参数,则只需完全省略括号即可。查询和突变也是如此:
type Query {
users: Int
}
来自规范:
Fields are conceptually functions which return values, and occasionally accept arguments which alter their behavior. These arguments often map directly to function arguments within a GraphQL server’s implementation.
因此值得指出的是任何类型的字段都可以有参数。例如,查询可能如下所示:
query UsersQuery {
users {
name
posts (onlyNew: true) {
title
}
}
}