我正在使用 Graphiql Go GUI。我正在尝试创建创建用户的突变。但是,我收到一条错误消息,指出尚未提供电子邮件。
如果我查看请求,它不包括替换值。正因为如此,它在服务器中的距离不足以创建用户。
我想知道这个的正确语法。我已经阅读了文档和社区的一些回复,这看起来是正确的语法。
mutation CreateUser($email: String!) {
createUser(email: $email) {
id
email
}
}
查询变量:
{
"email": "test@test.com"
}
类型:
var RootMutation = graphql.NewObject(graphql.ObjectConfig{
Name: "RootMutation",
Fields: graphql.Fields{
"createUser": &graphql.Field{
Type: UserType,
Description: "Creates a new user",
Args: graphql.FieldConfigArgument{
"email": &graphql.ArgumentConfig{
Type: graphql.NewNonNull(graphql.String),
},
},
Resolve: func(params graphql.ResolveParams) (interface{}, error) {
email, err := params.Args["email"].(string)
log.Println(err)
log.Println(email)
// handle creating user
},
},
},
})
错误:
{
"data": null,
"errors": [
{
"message": "Variable \"$email\" of required type \"String!\" was not provided.",
"locations": [
{
"line": 1,
"column": 21
}
]
}
]
}
我不明白为什么如果客户端 GUI 端(graphiql)没有错误,为什么它不会将电子邮件发送到后端。
有什么我想念的吗?