19
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

API Gatewayのデフォルトのゲートウェイのレスポンスを変更

Posted at

docomo Developer support@akatsukahaです

API GatewayでデプロイしているAPIに対して想定外のアクセスをされたときに返却されるAPI Gatewayのデフォルトのエラーレスポンスが不親切だと思うことがあります.エラーレスポンスをカスタマイズする方法を記載します.

1. API Gatewayの環境

API Gatewayにて下記の通りAPIをデプロイしているとします.

リソース
00.png

/aaa/bbb(GET)の統合レスポンス内容
01.png

デプロイされたステージ
02.png

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のゲートウェイレスポンスのカスタマイズ

では,デフォルトのゲートウェイのレスポンスをカスタマイズしたいと思います.

まずデフォルトのゲートウェイのレスポンスはゲートウェイのレスポンスにて定義されています.ここに記載されてい内容を変更します.
03.png

今回はMissing Authentication Tokenを変更したいので,下記の通り[Missing Authentication Token403]を変更します.{"message":"Forbidden"}と変更し,[保存]します.
04.png

これだけではデプロイ済みの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"}

4. 参考

19
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?