docomo Developer supportの@akatsukahaです
API GatewayでデプロイしているAPIに対して想定外のアクセスをされたときに返却されるAPI Gatewayのデフォルトのエラーレスポンスが不親切だと思うことがあります.エラーレスポンスをカスタマイズする方法を記載します.
1. API Gatewayの環境
API Gatewayにて下記の通りAPIをデプロイしているとします.
2. API Gatewayのエラーメッセージの確認
下記の通りv1/aaa/bbb
へのアクセスは想定どおりのレスポンスです.
$ curl https://1a2gskfus6.execute-api.ap-northeast-1.amazonaws.com/v1/aaa/bbb
{"message":"hello world"}
しかし,メソッドを定義していないリソースに対するアクセスをした場合,API Gatewayのデフォルトの値が返却されます.{"message":"Missing Authentication Token"}
と返されてもなんじゃこれ?って感じになります.
$ curl https://1a2gskfus6.execute-api.ap-northeast-1.amazonaws.com/v1/aaa
{"message":"Missing Authentication Token"}
3. API Gatewayのゲートウェイレスポンスのカスタマイズ
では,デフォルトのゲートウェイのレスポンスをカスタマイズしたいと思います.
まずデフォルトのゲートウェイのレスポンスはゲートウェイのレスポンスにて定義されています.ここに記載されてい内容を変更します.
今回はMissing Authentication Token
を変更したいので,下記の通り[Missing Authentication Token403]を変更します.{"message":"Forbidden"}
と変更し,[保存]します.
これだけではデプロイ済みのAPIに反映されないので,再度APIをデプロイしてください.
下記の通り試してみると,正しく反映されていることがわかります.
$ curl https://1a2gskfus6.execute-api.ap-northeast-1.amazonaws.com/v1/aaa/bbb
{"message":"hello world"}HayatonoMacBook-puro:~ akatsuka
$ curl https://1a2gskfus6.execute-api.ap-northeast-1.amazonaws.com/v1/aaa
{"message":"Forbidden"}