Amazon API Gatewayでモックを作る
超シンプルなAPI Gatewayのサンプルがほしかったので、ユーザーガイドの手順でモックを作りました。
手順はこちらです。
Amazon API Gateway でモック統合を使用して REST API を作成する
目次
APIの作成
API Gatewayコンソールで[APIの作成]ボタンを押下して、REST APIを選択して、[構築]ボタンを押下しました。
[新しいAPI]のまま、[API名]に任意の名前を入力して、[APIの作成]ボタンを押下しました。
APIができましたので、[アクション]-[メソッドの作成]で[GET]を選択してチェックして作成します。
統合タイプで[Mock]を選択して、[保存]ボタンを押下しました。
APIにGETメソッドが作成できました。
メソッドリクエストの設定
[メソッドリクエスト]を選択して設定をします。
[クエリ文字列の追加]リンクを選択して、クエリ文字列を追加します。
myParamと入力して、チェックマークを押下して保存しました。
[メソッドの実行]リンクを選択して、メソッド設定画面へ戻ります。
統合リクエストの設定
[統合リクエスト]を選択して設定をします。
[マッピングテンプレート]を展開して、Content-Typeですでに設定されている、application/json を選択します。
リクエスト内容を以下に書き換えます。
|
1 2 3 4 5 6 7 8 |
{ #if( $input.params('myParam') == "myValue" ) "statusCode": 200 #else "statusCode": 500 #end } |
リクエストクエリのmyParamがmyValueのときに、statusCode 200を送信するリクエストを定義しています。
本来であれば、APIリクエストによって実行されるバックエンドの処理によって、成功であれば200、エラーの場合は500などのレスポンスになりますが、今回はモックを作っているので、リクエストによってコードを送信しています。
[保存]ボタンを押下しました。
[メソッドの実行]リンクを選択して、メソッド設定画面へ戻りました。
メソッドレスポンスの設定
[メソッドレスポンス]を選択して設定しました。
[レスポンスの追加]リンクを選択して、500を入力してチェックマークで保存しました。
[メソッドの実行]リンクを選択して、メソッド設定画面へ戻りました。
統合レスポンスの設定
[統合レスポンス]を選択して設定しました。
200レスポンスを展開して、マッピングテンプレートを選択して、application/jsonを選択して、テンプレートの内容を以下にしました。
|
1 2 3 4 5 |
{ "statusCode": 200, "message": "Hello from API Gateway!" } |
ステータスコードが200の成功時に返すメッセージを定義しています。
[保存]ボタンを押下しました。
200レスポンスのセクションを省略しました。
[統合レスポンスの追加]リンクを選択しました。
HTTPステータスの正規表現に “5\d{2}” と入力しました。
メソッドレスポンスステータスで 500 を選択しました。
[保存]ボタンを押下しました。
追加した500レスポンスを展開して、マッピングテンプレートで application/json を入力し、内容を以下にしました。
|
1 2 3 4 5 |
{ "statusCode": 500, "message": "This is an error message." } |
[保存]ボタンを押下しました。
[メソッドの実行]リンクを選択して、メソッド設定画面へ戻りました。
テストを実行
[テスト]を選択してテストを実行します。
[クエリ文字列]に “myParam=myValue” と入力して、[テスト]ボタンを押下しました。
正常に実行されたレスポンスがレスポンス本文に表示されました。
[クエリ文字列]に適当な文字列を設定して、[テスト]ボタンを押下しました。
レスポンス本文にエラーレスポンスが表示されました。
デプロイしてテストする
[アクション]-[APIのデプロイ]を選択しました。
[デプロイされるステージ]は”新しいステージ”にして、ステージ名は任意の値にして、[デプロイ]ボタンを押下しました。
[ステージ]にprodが作成されているので、URL呼び出しリンクをブラウザのURLバーに貼り付けて、後ろにパラメータ “?myParam=myValue” を付加しました。
GETリクエストの結果が表示されました。
成功です!
例えば連携先のAPIが開発中のときなど、仕様に基づいてモックを作っておいて、連携テストを進めておくなど、便利に使えます。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。
「AWS教科書 AWS認定デベロッパーアソシエイト テキスト&問題集 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
webフォームからの問い合わせをRedmineに自動登録して対応状況を管理する(API Gateway + Lambda)
先日、検証目的で作成したRedmineの冗長化の一機能として、webフォームから …
-
-
AWS EC2 Amazon Linux にEC-CUBE3をnginx+MySql環境へインストール(手順検証中)
EC2インスタンスを作成する 少し古い記事で恐縮ですが試したい事があるのでAWS …
-
-
AWS CLIを使用せずにCodeCommitへSSHユーザーで接続する
AWS CLIやアクセスキーID、シークレットアクセスキーなどを開発環境にセット …
-
-
S3バケットポリシーで特定のVPCエンドポイント以外からのリクエストを拒否しつつメンテナンスはしたい
特定のVPCで実行されているEC2のアプリケーションからのリクエストだけを許可し …
-
-
Amazon API GatewayのIAM認証の動作を確認しました
API GatewayのIAM認証は、IAMユーザーが実行できるように認証する、 …
-
-
AWS Organizations SCPがリソースベースのポリシーには影響しないことを確認
AWS Organizations SCPで許可ポリシーの設定をし継承の関係を確 …
-
-
EC2 Dedicated Hosts(専有ホスト)を起動
クォータ引き上げ 新規で作成したアカウントではDedicated Hostsがソ …
-
-
Feedlyのリフレッシュトークンを使ってアクセストークンを取得する
FeedlyというRSSリーダーから連携している構成があります。 Feedlyの …
-
-
5分でAlexaスキルを作る
「JAWS-UG Osaka 第22回勉強会 東西の中の人が語る!!! Micr …
-
-
Elastic BeanstalkでflaskアプリケーションデプロイのチュートリアルをCloud9で
Elastic Beanstalk への flask アプリケーションのデプロイ …















