Sangria 没有看到 GraphQL 查询变量
Sangria not seeing GraphQL query variables
当我有这样的查询时:
{
"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"))
)
为什么 Sangria 不识别这些变量?我的命名方式有问题吗?
您缺少 GraphQL 查询本身的 "variable definition" 部分。这是查询的一部分,指示它希望传入的变量类型。
所以这应该可行,前提是我已经猜出变量的正确类型:
{
"query": "mutation myMutation($name: String, $schema: String) { createInventory(name: $name, schema: $schema) }",
"variables": {
"name": "i1",
"schema": "s"
}
}
阅读我的文章,The Anatomy of a GraphQL Query。
当我有这样的查询时:
{
"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"))
)
为什么 Sangria 不识别这些变量?我的命名方式有问题吗?
您缺少 GraphQL 查询本身的 "variable definition" 部分。这是查询的一部分,指示它希望传入的变量类型。
所以这应该可行,前提是我已经猜出变量的正确类型:
{
"query": "mutation myMutation($name: String, $schema: String) { createInventory(name: $name, schema: $schema) }",
"variables": {
"name": "i1",
"schema": "s"
}
}
阅读我的文章,The Anatomy of a GraphQL Query。