📘
GraphQLが400 Bad Request(transport not supported)を返すと思ったらGETメソッドだった
runnでGraphQL(gqlgen)エンドポイント向けのYAMLを書き始めたときにハマったメモ。
リクエストbodyは正しいはずなのにテストが失敗するので--debug
オプションで見てみたところ、以下のエラーが返ってきていた。
HTTP/1.1 400 Bad Request
...
{"errors":[{"message":"transport not supported"}],"data":null}
「graphql "transport not supported"」で検索すると、リクエストヘッダに
Content-Type: application/json
を指定すれば解決するという記事をいくつか見かけたが、Content-Typeはちゃんと指定している。
何度もテストシナリオを見直していると、なぜかそのテストだけGETメソッドになっていることに気づいた。。。
GraphQLは参照系でもPOSTメソッドなのでPOSTメソッドに修正したところうまくいったという、本当に初歩的な話でした。
Discussion