GraphQL变异变量

GraphQL变异变量,graphql,graphql-js,Graphql,Graphql Js,我正在尝试使用GraphQL和GraphiQL接口进行一个简单的变异。我的基因突变如下: mutation M($name: String) { addGroup(name:$name) { id, name } } 使用变量: { "name": "ben" } 但它给了我一个错误:变量$name,类型为“String”,用于预期类型为“String!”的位置。 如果我将我的变异更改为mutation M($name:String=“default”)它将按预期

我正在尝试使用GraphQL和GraphiQL接口进行一个简单的变异。我的基因突变如下:

mutation M($name: String) {
  addGroup(name:$name) {
    id,
    name
  }
}
使用变量:

{
  "name": "ben"
}
但它给了我一个错误:
变量$name,类型为“String”,用于预期类型为“String!”的位置。


如果我将我的变异更改为
mutation M($name:String=“default”)
它将按预期工作。这似乎与类型系统有关,但我似乎无法找出问题所在。

我认为在您
addGroup()
中,name的args属于
字符串类型
这是新的GraphQlnNull(GraphQlnNull)(GraphQlnNull),但在您的变体中,您指定为与类型系统冲突的
字符串。

您可能将输入名称定义为非空字符串(类似于
类型:新的GraphQlnNull(GraphQlnNull)
,如果使用js server,或者在普通GraphQL中定义为
字符串!

因此,您在变异中的输入必须匹配,这意味着它也必须是非空字符串。如果您更改为以下内容,它应该可以工作:

mutation M($name: String!) {
  addGroup(name:$name) {
    id,
    name
  }
}
另外,如果您像以前一样定义了默认值,那么它将是一个非空字符串


最后,您可以放弃服务器中非空的要求。

难以置信的
是问题所在。。。唉,这是有道理的!