1

我正在使用 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)没有错误,为什么它不会将电子邮件发送到后端。

有什么我想念的吗?

4

0 回答 0