前回のJAWSUG千葉ネタですが、Amazon API GatewayのMock機能を使ってみようというお話です。時代は、2-Tierアーキテクチャやサーバレス・アーキテクチャだと勇ましいですが、足元をみるとレガシーから脱却できずに苦労しているという現実もあると思います。そんな時に、API Gatewayのモック機能を使って、部分的にでも文明の利器を感じるのは良いのではないでしょうか?
Amazon API GatewayのMock機能とは?
最初期のAPI Gatewayには4つの機能がありました。Lambda連携とAWS Proxy,Http Proxyの3つです。4つ目の機能として追加されたのが、Mock機能です。最初の3つの機能は、API Gatewayを通じて別のリソースを呼び出す機能です。これに対して、Mock機能はAPI Gateway自身が直接的に値を返す機能です。名前の通り、バックエンドのサービスが出来る前に代わりに仮の値を返すサービスです。バックエンドのサービスが出来上がる前に、開発環境として利用するのが良いのではないでしょうか?
Amazon API GatewayのMock機能の使い所
Mock機能は、どのように使えば良いのでしょうか?例えば、モバイルアプリの開発に使うのが良いのではと思っています。最近のモバイルアプリは、当たり前のようにサーバ側のシステムと連携します。その際の連携方法としては、JSON等の形式で連携することが多いです。まぁよくあることだと思いますが、スマホのアプリ側を作り出している時は、それに対応するためのサーバ側のAPIを同時に作ることが多いです。そして、開発途上でモバイル側のアプリの動作をみる場合は、当然ながらサーバ側のAPIが必要になります。API側の完成を悠長に待つことは出来ないので、スタブが必要となります。
私が関わってる開発の現場では、S3のWebホスティング機能を利用しJSONファイルをアップしてスタブとして利用していました。こんな感じですね。
これはこれで簡単便利なのですが、幾つか残念なところがあります。
- 返り値を変更する為には、わざわざファイルをアップロードするのが面倒くさい
- レスポンスコードやヘッダーの変更ができない
そこで登場するのが、Mock機能です。
こんな感じに変わります。
見た目は余り変わりませんね。
でも、思った以上にメリットがあります。
- AWSのマネジメントコンソール上で、返り値の変更をできる
- レスポンスコードやヘッダーの変更が簡単
特に後者がありがたいです。異常系テストで、アクセス拒否やサーバエラーが発生した時の挙動を簡単に再現出来るのは便利です。
Amazon API GatewayのMock機能の設定
では、どうやって設定するのでしょうか?一度覚えてしまうと簡単ですが、まぁ最初は解りづらいこと間違いなしです。中の人いわくSwagger使えとのことです。といっても、最初からサードパーティのツールから入るのも取っ付きにくいので、AWSマネジメントコンソールの設定例をあげておきます。
まずは一連の流れを動画で見てください。
つぎに個々の動きについて、細かく切り出してみます。
1. APIの作成
2. リソース(Resource)の作成
3. メソッド(Method)の作成 1
4. メソッド(Method)の作成 2
5. メソッド(Method)の作成 3
6. メソッド(Method)の作成 4
7. メソッド(Method)の作成 5
8. メソッド(Method)の作成 6
9. テスト 1
10. テスト 2
11. デプロイ 1
12. デプロイ 2
まぁ何というか面倒くさいですね。
感想
まぁ賛否両論どちらかといえば非難轟々のUIですが、コーディングレスで管理コンソールだけでも試せるということは、敷居が低いという面で良いと思います。恐らく管理画面は、どんどん変わると思うので次はSwaggerの使い方の紹介でもしようと思います。
追記:
この辺りのことを、『Amazon Web Services クラウドネイティブ・アプリケーション開発技法』という本でコッテリ解説しています
_
See Also:
JAWSUG千葉で、API Gatewayの話をしてきました。
参照:
Amazon API GatewayでMockを定義してみる - Qiita

Amazon Web Services パターン別構築・運用ガイド 一番大切な知識と技術が身につく
- 作者: NRIネットコム株式会社,佐々木拓郎,林晋一郎,小西秀和,佐藤瞬
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/03/25
- メディア: Kindle版
- この商品を含むブログを見る

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく
- 作者: 佐々木拓郎,佐藤瞬,石川修,高柳怜士,佐藤雄也,岸本勇貴
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/04/20
- メディア: Kindle版
- この商品を含むブログを見る