API Gateway で 存在しない API メソッドへリクエストした際のレスポンスを変更する方法を教えてください

2022.08.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

API Gateway にて、 作成していないメソッドへリクエストした場合に API Gateway 側でチェックして 特定のエラーメッセージをレスポンスすることはできますか?

どう対応すればいいの?

存在しないメソッドへのリクエストが行われると API Gateway はMissing Authentication Tokenエラーを返します。[1]

[API Gateway]-[ゲートウェイのレスポンス]-[認証トークンが見つかりません] (Missing Authentication Token)

クライアントがサポートされていない API メソッドまたはリソースを呼び出そうとした場合など、欠落した認証トークンエラーに対するゲートウェイのレスポンス。レスポンスタイプが指定されていない場合、このレスポンスはデフォルトの DEFAULT_4XX タイプになります。

Missing Authentication Tokenエラー のレスポンスは リンク先の方法でカスタマイズすることが可能です。[2] [3] [4]

参考資料

[1] API ゲートウェイの「Missing Authentication Token」エラーを解決する

API Gateway REST API エンドポイントが、Missing Authentication Tokenエラーを返すのは、次の 2 つの理由からです。 API リクエストが、存在しないメソッドまたはリソースに対して行われたため。 API メソッドで AWS Identity and Access Management (IAM) 認証が有効になっているのに、API リクエストが署名されていないため。

[2] API Gateway でのゲートウェイレスポンス - Amazon API Gateway

エラーレスポンスをカスタマイズするためのゲートウェイレスポンスのセットアップ

API Gateway は、受信リクエストを処理できない場合、統合バックエンドにリクエストを転送せずにクライアントにエラーレスポンスを返します。デフォルトでは、エラーレスポンスにエラーを説明する短いメッセージが含まれます。たとえば、未定義の API リソースに対してオペレーションを呼び出そうとすると、{ "message": "Missing Authentication Token" } というメッセージが含まれたエラーレスポンスが返されます。API Gateway に慣れていないユーザーには、メッセージの意味がわかりにくい場合があります。

一部のエラーレスポンスについては、API デベロッパーがカスタマイズして異なる形式で返すことが API Gateway で許可されています。たとえば、Missing Authentication Token の場合は、次の例に示すように、元のレスポンスペイロードにヒントを追加し、考えられる原因を説明できます: {"message":"Missing Authentication Token", "hint":"The HTTP method or resources may not be supported."}。

[3] API Gateway コンソールを使用して REST API のゲートウェイレスポンスをセットアップする - Amazon API Gateway

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