[AWS] Amazon API GatewayでモバイルAPI Mockサーバー [リソースのパラメータ化]

2016.01.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。小室です。本日は札幌移住計画というイベントに参加しています。

sapporo_iju

来場者も多くとても盛況でした。 *1

Amazon API GatewayでAPI Mockサーバー

前回、簡単なAPI Mockサーバーの作成を紹介しましたが、今回はリソースをパラメータ化したパスを指定できるようにします。

リソースのパラメータ化

前回 /users というリソースに対してGETメソッドを定義しました。今回は、もう一つユーザーIDをリソースパスで指定し、特定のユーザー情報を取得できるようなものを考えます。

  • GET /users/199 : ユーザーID=199のユーザー情報を取得したい

こんなAPIを作成したい場合の手順をご紹介します。

リソースの作成

前回と同じ手順でリソースを作成します。今回は /users 配下にパラメータ化したリソースを配置したいので、まずは前回作成した /users のリソースを選択します。

スクリーンショット 2016-01-23 11.19.55

続いて右のペインにある Create Resource をクリックします。前回ご紹介した通り、Resourceを作成し、/users 配下にResource Pathを作成します。

続いて右のペインにある Create Resource をクリックします。前回ご紹介した通り、Resourceを作成し、/users 配下にResource Pathを作成します。

スクリーンショット_2016-01-23_11_20_09

Resource名には「id」を入力します。今回はResource Pathをパラメータ化したいので、Resource Pathは {} を付けて入力します。

スクリーンショット 2016-01-23 11.31.32

Create Resource をクリックします。

{}付きで入力するのは、Resource Nameではありません。Resource Nameを{}付きで入力してもパラメータ化Resource Pathは作成できないので注意してください。

スクリーンショット 2016-01-23 11.49.07

GETメソッドの作成

メソッドを作成します。左側のペインからResourcesの {id} を選択状態にします。Create Method をクリックし、GETメソッドを追加します。

スクリーンショット 2016-01-23 12.34.55

スクリーンショット 2016-01-23 12.35.05

右のペインに移り、Mock Integration を選択し、Saveをクリックします。

スクリーンショット 2016-01-23 12.37.32

Integration Responseの編集

Integration Requestは前回解説したように、特に変更は必要ないので、Responseのみ修正します。今回はResource Pathをパラメータ化したため可変です。Responseの値に、Resource Pathを含めるTemplateを作成しましょう。

{
"id": "$input.params().path.id"
}

スクリーンショット 2016-01-23 18.19.34

$input.params().path でアクセスしてきたResource Pathを取得できます。こちらを実行するとpathの情報がJsonで返ってきます。今回は、 resource pathを id と指定しているので、$input.params().path.id で今回のパラメータ化した Resource を取得することができます。

テスト

作成したAPIをテストしてみます。/users/{id} - GET - Method Execution の画面を開きます。

スクリーンショット_2016-01-23_17_50_46

TEST をクリックします。

Pathを展開すると、今回パラメータ化した id を指定する入力が確認できます。

スクリーンショット_2016-01-23_17_53_20

id には任意の値を入れることができます。

id=200の場合

実行結果は以下の通り。

スクリーンショット 2016-01-23 17.55.33

id=501の場合

実行結果は以下の通り。

スクリーンショット 2016-01-23 17.57.07

id=hogehoge1の場合

実行結果は以下の通り。

スクリーンショット 2016-01-23 17.57.53

特に数値以外でも問題はなし。

まとめ

前回に引き続き、Resourceのパラメータ化したMockを作成しました。IDなどをResource Pathで指定したりする場合のAPIのMockにはこれで対応できそうです。

今後は、「VTLを利用した条件分岐」や「リクエストの入力値、ユーザー情報、リクエストのContext情報の取得と使い方」のうちのどれかを書きたいと思います。

んではまた。

参照

脚注

  1. 僕とすもけ部長がお昼ごはんを食べる暇がない程度には忙しかったです。