Amazon API GatewayでMock APIを作ってみた

## はじめに
こんにちは。
最近はとにかく[モンハンワイルズ](https://www.monsterhunter.com/wilds/ja-jp/)の発売が楽しみです。
さて、モンハンとかけまして、AWSと解きます。
その心は「どちらもスキルが重要」でしょう。（？）

今回は**Amazon API Gatewayを単体で触ってみます**。
まずは、APIを他サービスと連携させず、テスト用のMock APIを作成し、意図したレスポンスが返されるのかを試してみます。

本記事は以下記事の続編です。

https://qiita.com/uccy/items/24dba8396bccb7a2684d

↓参考にしたハンズオンはこちら。

https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-Serverless-1-2022-confirmation_422.html

## やってみた
マネジメントコンソールにアクセスし、API Gatewayのページに飛び、「APIの作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3848705/b7a1120c-1ec3-a52a-b7ac-f747fd7208ed.png)

今回はREST APIを作成します。「構築」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3848705/3b00e565-edbf-ff2a-c016-2149053e1d3d.png)

「新しいAPI」を選択し、API名と説明（任意）を入力します。
APIエンドポイントタイプは「リージョン」を選択し、「APIを作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3848705/72cc031f-2d7e-59ca-984c-10d1a3267483.png)

次に「リソースを作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3848705/95bc5d81-9098-642c-ebf4-8c5143ff44bd.png)

リソース名は「sample」とします。
「リソースを作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3848705/aa4b90e7-a974-8b83-6750-d6d1828ff791.png)

「メソッドを作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3848705/474c03d3-d82f-f432-d8de-8894dc21b115.png)

メソッドタイプは「GET」とし、統合タイプは「Mock」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3848705/4e03dad6-eca0-43e6-8b05-a876fdc25614.png)

下の方にスクロールして「メソッドを作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3848705/f5eddf18-15de-fcfd-302a-14fe4848c4a2.png)

「統合レスポンス」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3848705/01a2b4df-a7f8-11ba-4552-b8e811f50ffc.png)

「編集」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3848705/f209505d-b1f7-1b14-024e-81dd3e547b9e.png)

「マッピングテンプレート」を開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3848705/f477d593-98d0-93f1-2130-77b511bcc11f.png)

以下のJSONを入力して「保存」をクリックします。
MockAPIなので、最終的にこのコードがそのまま画面に表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3848705/27cef2cd-5e2c-473d-9707-dda1cce59457.png)

入力するコードは以下です。
```JSON:マッピングテンプレート
{
    "statusCode": 200,
    "body": {
        {
            "report_id": 5,
            "report_title": "Hello, World"
        },
        {
            "report_id": 7,
            "report_title": "こんにちは"
        }
    }
}
```

ここでテストしてみます。
「テスト」タブを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3848705/68d0e396-25a3-6e11-511d-46f0ad647539.png)

「テスト」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3848705/75782f5f-a840-61c7-8b44-74b06b2178c6.png)

テストが実行されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3848705/9643fd11-6a0c-750c-bf64-852af7059ed6.png)

画面を上にスクロールして「APIをデプロイ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3848705/115b6b55-e6b8-e3b4-ba49-25e9a31f2a26.png)

ステージに「新しいステージ」を選択し、ステージ名に「dev」と入力します。
入力後、「デプロイ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3848705/e92e26f0-249f-3724-738e-e7bc7832a2ec.png)

左側の+ボタンを3回クリックして「GET」を出し、「URLを呼び出す」の欄に記載されているURLをコピーします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3848705/827de54c-d4d2-a251-9c89-0015ef0edf2e.png)

コピーしたURLをブラウザから叩きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3848705/83a8cfa5-a26c-bf28-c1fb-f55976e3ea62.png)

無事、作成したMock APIが表示されました。
今回はこれで以上です。

## おわりに
今回はAPI GatewayでMock APIを作ってみました。
正直、今まではREST APIが何なのかもよく分かりませんでした。
調べながらハンズオンを実施したことで、**基礎の基礎を習得できた気がします**。
次回は**Lambdaと連携**させてみます。

![AdobeStock_707432917.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3848705/3bfa19b7-a0de-21fa-bc73-d0b5c60ff7da.jpeg)