允许哪些类型的GraphQL变量?

时间:2017-07-20 10:46:55

标签: graphql

GraphQL常见做法,特别是通过HTTP,有一个query参数,一个可选的operationName和一个提供variables的可选JSON对象。

我见过的variables参数的所有示例都是简单的JSON对象:

{
  "var1": "value1",
  "var2": 2
}

每个键都有一个简单的JSON类型值,例如数字或字符串。

GraphQL变量值可以比这更广泛,有更深层次的数组和对象混合吗?

{
  "var1": "value1",
  "var2": {
    "name": "My Name",
    "numbers": [1, 5, 11, 10]
  }
}

1 个答案:

答案 0 :(得分:2)

但是,您肯定希望我确保您的架构中有匹配的输入类型。所以要接受一个像var2那样的结构的输入,你需要这样的东西:

input VarInput {
  name: String
  numbers: [Int]
}

然后,对于查询/变异的类型定义......

type Query {
  foo (var1: String, var2: VarInput): Foo
}

然后你的解析器可以像任何其他参数一样获取var2