【问题标题】:Sangria not seeing GraphQL query variables桑格利亚汽酒没有看到 GraphQL 查询变量
【发布时间】:2017-10-04 01:55:05
【问题描述】:

当我有这样的查询时:

{
  "query": "mutation { createInventory(name: $name, schema: $schema) }",
  "variables": {
    "name": "i1",
    "schema": "s"
  }
}

我收到一条错误消息:未定义变量“$name”。

我检查了这些变量是从 JSON 中正确提取的,而且确实如此。可以肯定的是,我尝试在执行查询时显式传入name 变量:

Executor.execute(
    GraphQLSchema.schema,
    query,
    ctx,
    variables = InputUnmarshaller.mapVars(Map("name" -> "foo"))
)

为什么桑格利亚汽酒不能识别这些变量?我的命名方式有问题吗?

【问题讨论】:

    标签: scala graphql sangria


    【解决方案1】:

    您缺少 GraphQL 查询本身的“变量定义”部分。这是查询的一部分,指示它期望传入的变量类型。

    如果我猜到了变量的正确类型,这应该可以工作:

    {
      "query": "mutation myMutation($name: String, $schema: String) { createInventory(name: $name, schema: $schema) }",
      "variables": {
        "name": "i1",
        "schema": "s"
      }
    }
    

    阅读我的文章The Anatomy of a GraphQL Query了解更多信息。

    【讨论】:

    • 谢谢!这几乎是一个完美的答案:解决了问题,快速回答,并链接到更深入解释的文章。
    猜你喜欢
    • 2019-08-22
    • 2017-10-23
    • 2019-07-14
    • 2019-03-25
    • 2016-07-03
    • 1970-01-01
    • 2019-12-28
    • 2018-03-02
    • 2014-03-12
    相关资源
    最近更新 更多