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