AWS API GatewayのREST APIでモックを作成する

はじめに

今回は、AWS APIGatewayのモック統合を使用したモックAPIの作成方法をご紹介したいと思います。

APIを作成する

Amazon API Gatewayコンソールで「APIの作成」ボタンをクリックします。

「REST API」の「構築」ボタンをクリックします。

適当なAPI名を入力し、「APIの作成」ボタンをクリックします。

「アクション」ー「メソッドの作成」を選択します。

プルダウンから任意のメソッド(今回はGET)を選択し、プルダウン右側のチェックマークをクリックします。

「統合タイプ」から「Mock」を選択し、「保存」ボタンをクリックします。

モックのセットアップ

モックのセットアップをしていきます。今回は、クエリ文字列「param」の値によって異なるレスポンスを返すモックを作成しようと思います。

まずは、メソッドリクエストからクエリ文字列を追加します。「メソッドリクエスト」をクリックします。

「クエリ文字列の追加」をクリックします。

名前欄に「param」と入力し、右側のチェックマークをクリックします。

次に、クエリ文字列「param」をレスポンスのHTTPステータスコード値にマッピングするマッピングテンプレートを作成します。

「統合リクエスト」を選択します。

「マッピングテンプレート」を展開し、「リクエスト本文のパススルー」を「テンプレートが定義されていない場合(推奨)」に変更します。

「Content-Type」から「application/json」を選択します。

テンプレートに下記のコードを入力し、「保存」ボタンをクリックします。

#if($input.params("param") == "200")
  {"statusCode": 200}
#else
  {"statusCode": 500}
#end

ここでは、$input.paramsでクエリ文字列を取得し、その値によって返却するHTTPステータスコードを変えています。そのほかにもいろいろな値を取得して処理を記載することができます。詳細は下記公式ドキュメントをご参照ください。

API Gateway マッピングテンプレートとアクセスのログ記録の変数リファレンス

次に、クライアントに返却するHTTPステータスコードを定義します。既定では200のみ定義されているので、今回は500を追加します。

「メソッドレスポンス」を選択します。

「レスポンスの追加」をクリック後、「500」を入力し、右側のチェックマークをクリックします。

最後に、クライアントに返すレスポンスメッセージを定義します。

「統合レスポンス」を選択します。

「メソッドレスポンスのステータス」が「200」の行を展開し、「マッピングテンプレート」セクションの「Content-Type」から「application/json」を選択します。

テンプレートに下記コードを入力し、「保存」ボタンをクリックします。

{
    "statusCode": 200,
    "message": "Hello from API Gateway!"
}

画面下の「統合レスポンスの追加」をクリックし、500のステータスを返す統合レスポンスを追加します。各項目を入力し、「保存」ボタンをクリックします。

「メソッドレスポンスのステータス」が「500」の行を展開し、「マッピングテンプレート」セクションの「Content-Type」から「application/json」を作成します。

テンプレートに下記コードを入力し、「保存」ボタンをクリックします。

{
    "statusCode": 500,
    "message": "This is an error message."
}

設定は以上です。動作確認してみましょう。

動作確認

「テスト」を選択します。

まずは、正常系から。クエリ文字列欄に「param=200」を入力し、「テスト」ボタンをクリックします。

以下のとおり、定義したメッセージが返ってきました!

次に異常系です。クエリ文字列欄に「param=500」を入力し、「テスト」ボタンをクリックします。

500のエラーメッセージも無事返ってきました!

以上です。

参考

Amazon API Gateway でモック統合を使用して REST API を作成する