桑格利亚没有看到GraphQL查询变量

时间:2017-10-03 17:38:43

标签: scala graphql sangria

当我有这样的查询时:

{
  "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"))
)

为什么桑格利亚不会认识到这些变量?我如何命名它们有什么问题吗?

1 个答案:

答案 0 :(得分:3)

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

所以这应该有效,前提是我已经猜到了变量的正确类型:

t = lambda x: myFmt(mdates.date2num(x.astype('<M8[s]').item()))

plt.annotate(t(v1), xy=(v1, 1), xytext=(0, 10), textcoords='offset points', )
plt.annotate(t(v2), xy=(v2, 1), xytext=(0, 10), textcoords='offset points',ha="right" )

在我的文章The Anatomy of a GraphQL Query中阅读更多内容。