5分で作るAPI Gatewayのモック
概要
- API Gatewayを使えば、簡単にREST API の開発、公開が可能です。今回は、API Gatewayでバックエンドは使用せず、とりあえずのモックを作る方法を説明します。
- 例えばLambdaなどバックエンドとなるプロダクトを別の方が担当、未だデプロイできないなどの理由で、先ずAPI だけを作り、APIを呼び出すためのURL を決めたり、Resource Policyなど一部の設定を進めることが可能です。
API Gatewayのモックを作る
- API Gateway のコンソールを開き、プロトコルに「REST」、APIに「New API」、SettingsのAPI nameにAPI名、Endpoint Typeに「Regional」or 「Edge optimized」を選択します。(Endpoint Typeは後から変更できませんので、ご注意ください)
- エッジ最適化 API エンドポイントは、地理的に分散されたクライアントに最適なエンドポイントであり、デフォルトのエンドポイントタイプです。APIリクエストは、最寄りのCloudFrontエッジにルーティングされます。
- リージョン API エンドポイントは、同じリージョンのクライアントを対象とします。

- メソッドを作成します。[Actions]から[Create Method]を選択します。

- [Resources]ペインにて、メソッドにGET あるいはPOST(実際の要件に合わせて選択)を選択します。次に、Integration type に「Mock」を選択します。

- [Resources]ペインの作成したメソッドの [Method Execution] ペインにて、[Integration Response] を選択します。

- モックには、HTTPステータスに200 OK を返すレスポンスがデフォルトで準備されています。今回は、さらにこのレスポンスのBodyをカスタマイズします。
- レスポンスのMapping Templatesを開き、Content-Typeのapplication/json に、下記のjson を貼り付けます。
{"statusCode": 200, "body": "\"Hello World!\""}

- APIをデプロイします。[Actions]から[Deploy API]を選択します。

- Deployment stageにデプロイするステージ(今回は[New Stage])、Stage nameにステージ名(今回はdev)を設定し、デプロイを行います。

- 下記の通り、APIをコールするためのURL ができました。

モックAPIをテストする
- curlコマンドで、作成したモックAPI をテストします。200 OK およびカスタマイズしたBodyが返ることを確認します。
niikawa@niikawa1:~$ curl https://xxxxxxn1ba.execute-api.ap-northeast-1.amazonaws.com/dev
{"statusCode": 200, "body": "\"Hello World!\""}
参考資料
- API Gatewayの概念と用語は、下記ドキュメントから読み始めます。
- もう少し詳しく知りたくなった時。