【问题标题】:What types of GraphQL variable are allowed?允许哪些类型的 GraphQL 变量?
【发布时间】:2017-12-26 00:31:15
【问题描述】:

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]
  }
}

【问题讨论】:

    标签: graphql


    【解决方案1】:

    当然,但是,您会希望我确保您的架构中有匹配的输入类型。因此,要接受具有类似var2 中的结构的输入,您需要这样的东西:

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

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

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

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

    【讨论】:

    • 感谢您的回答 - 我愿意接受它是正确的。不过,我想知道您是否有更多关于服务器如何将变量强制转换为 GraphQL 类型的信息?
    • @BenCox 无论您使用什么 GraphQL 实现,都将再次根据您通过模式中的类型定义提供的信息,将输入解析为正确的类型。如果这是您所要求的,则服务器端不需要额外的步骤。
    猜你喜欢
    • 1970-01-01
    • 2015-04-28
    • 1970-01-01
    • 2020-10-13
    • 1970-01-01
    • 2019-09-14
    • 1970-01-01
    • 2011-02-21
    • 1970-01-01
    相关资源
    最近更新 更多