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 エンドポイントは、同じリージョンのクライアントを対象とします。
![](http://oji-cloud.net/wp-content/uploads/2020/01/2020-01-31_12h17_43-1-710x338.png.pagespeed.ce.zJFClYgkLT.png)
- メソッドを作成します。[Actions]から[Create Method]を選択します。
![](http://oji-cloud.net/wp-content/uploads/2020/01/2020-01-31_12h17_58-1-710x256.png.pagespeed.ce.IAupxEDzlc.png)
- [Resources]ペインにて、メソッドにGET あるいはPOST(実際の要件に合わせて選択)を選択します。次に、Integration type に「Mock」を選択します。
![](http://oji-cloud.net/wp-content/uploads/2020/01/2020-01-31_12h18_20-1-710x196.png)
- [Resources]ペインの作成したメソッドの [Method Execution] ペインにて、[Integration Response] を選択します。
![](http://oji-cloud.net/wp-content/uploads/2020/01/2020-01-31_12h18_31-1-710x338.png)
- モックには、HTTPステータスに200 OK を返すレスポンスがデフォルトで準備されています。今回は、さらにこのレスポンスのBodyをカスタマイズします。
- レスポンスのMapping Templatesを開き、Content-Typeのapplication/json に、下記のjson を貼り付けます。
{"statusCode": 200, "body": "\"Hello World!\""}
![](http://oji-cloud.net/wp-content/uploads/2020/01/2020-01-31_12h24_05-1-710x338.png)
- APIをデプロイします。[Actions]から[Deploy API]を選択します。
![](http://oji-cloud.net/wp-content/uploads/2020/01/2020-01-31_12h24_50-1-710x338.png)
- Deployment stageにデプロイするステージ(今回は[New Stage])、Stage nameにステージ名(今回はdev)を設定し、デプロイを行います。
![](http://oji-cloud.net/wp-content/uploads/2020/01/2020-01-31_12h25_06-1-725x478.png)
- 下記の通り、APIをコールするためのURL ができました。
![](http://oji-cloud.net/wp-content/uploads/2020/01/2020-01-31_12h25_19-1-710x240.png)
モック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の概念と用語は、下記ドキュメントから読み始めます。
- もう少し詳しく知りたくなった時。