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与类型系统冲突。