GraphQL突变变量
问题描述:
我正在尝试使用GraphQL与GraphiQL接口进行简单的变异。我的突变是这样的:GraphQL突变变量
mutation M($name: String) {
addGroup(name:$name) {
id,
name
}
}
与变量:
{
"name": "ben"
}
但它给我的错误:如果我改变我的突变mutation M($name: String = "default")
如期工作Variable $name of type "String" used in position expecting type "String!"
。这看起来像是与类型系统有关,但我似乎无法弄清楚问题所在。
答
你可能定义的输入名称作为一个非空的字符串(一些链接type: new GraphQLNonNull(GraphQLString)
如果使用JS服务器或String!
纯GraphQL)。
因此,您在突变中的输入必须匹配,这意味着还必须为非空字符串。如果更改为以下,应该工作:
mutation M($name: String!) {
addGroup(name:$name) {
id,
name
}
}
此外,如果你定义的默认值像你一样,因为你是一个非空字符串。
最后,您可以放弃在服务器中成为非空的要求。
答
我想在你addGroup()
突变为名称的参数表是String!
是new GraphQLNonNull(GraphQLString)
类型,但在你的突变指定为String
与类型系统冲突。