GraphQL 中是否可以构建一个需要整数或整数数组的查询?

Jac*_*fer 3 graphql hotchocolate

我有一种感觉,它必须是强类型的,无论是一种方式还是另一种方式,并且很好奇我是否可以使用相同的查询来完成这两个任务,我想要这样的事情:

{
  accounts(accountId: [1,2,3]) {
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

并且还能够进行相同的调用,将其视为普通 int:

{
  accounts(accountId: 1) {
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*den 8

List 是包装另一种类型的包装类型,但它本身是一种不同的类型。所以Int[Int]是两种不同的类型。字段或参数必须只有一种类型,因此它只能具有该类型Int 该类型[Int],而不能同时具有两种类型。

\n\n

但是,您可以利用 GraphQL 如何强制列表输入值。从规格来看:

\n\n
\n

如果作为输入传递给列表类型的值不是列表也不是空值,则输入强制转换的结果是大小为 1 的列表,其中单个项值是列表的输入强制转换的结果\xe2 \x80\x99s 提供的值上的项目类型(请注意,这可能会递归地应用于嵌套列表)。

\n
\n\n

换句话说,如果 的类型accountId[Int](or[Int!][Int!]!),客户端仍然可以传入单个整数作为值而不是数组。在这种情况下,该值将被强制转换为具有单个值(传入的值)的数组。

\n