[AWS] Amazon API GatewayでモバイルAPI Mockサーバー [リソースのパラメータ化]
こんにちは。小室です。本日は札幌移住計画というイベントに参加しています。
来場者も多くとても盛況でした。 *1
Amazon API GatewayでAPI Mockサーバー
前回、簡単なAPI Mockサーバーの作成を紹介しましたが、今回はリソースをパラメータ化したパスを指定できるようにします。
リソースのパラメータ化
前回 /users というリソースに対してGETメソッドを定義しました。今回は、もう一つユーザーIDをリソースパスで指定し、特定のユーザー情報を取得できるようなものを考えます。
- GET /users/199 : ユーザーID=199のユーザー情報を取得したい
こんなAPIを作成したい場合の手順をご紹介します。
リソースの作成
前回と同じ手順でリソースを作成します。今回は /users 配下にパラメータ化したリソースを配置したいので、まずは前回作成した /users のリソースを選択します。
続いて右のペインにある Create Resource をクリックします。前回ご紹介した通り、Resourceを作成し、/users 配下にResource Pathを作成します。
続いて右のペインにある Create Resource をクリックします。前回ご紹介した通り、Resourceを作成し、/users 配下にResource Pathを作成します。
Resource名には「id」を入力します。今回はResource Pathをパラメータ化したいので、Resource Pathは {} を付けて入力します。
Create Resource をクリックします。
{}付きで入力するのは、Resource Nameではありません。Resource Nameを{}付きで入力してもパラメータ化Resource Pathは作成できないので注意してください。
GETメソッドの作成
メソッドを作成します。左側のペインからResourcesの {id} を選択状態にします。Create Method をクリックし、GETメソッドを追加します。
右のペインに移り、Mock Integration を選択し、Saveをクリックします。
Integration Responseの編集
Integration Requestは前回解説したように、特に変更は必要ないので、Responseのみ修正します。今回はResource Pathをパラメータ化したため可変です。Responseの値に、Resource Pathを含めるTemplateを作成しましょう。
{ "id": "$input.params().path.id" }
$input.params().path
でアクセスしてきたResource Pathを取得できます。こちらを実行するとpathの情報がJsonで返ってきます。今回は、 resource pathを id
と指定しているので、$input.params().path.id
で今回のパラメータ化した Resource を取得することができます。
テスト
作成したAPIをテストしてみます。/users/{id} - GET - Method Execution の画面を開きます。
TEST をクリックします。
Pathを展開すると、今回パラメータ化した id を指定する入力が確認できます。
id
には任意の値を入れることができます。
id=200の場合
実行結果は以下の通り。
id=501の場合
実行結果は以下の通り。
id=hogehoge1の場合
実行結果は以下の通り。
特に数値以外でも問題はなし。
まとめ
前回に引き続き、Resourceのパラメータ化したMockを作成しました。IDなどをResource Pathで指定したりする場合のAPIのMockにはこれで対応できそうです。
今後は、「VTLを利用した条件分岐」や「リクエストの入力値、ユーザー情報、リクエストのContext情報の取得と使い方」のうちのどれかを書きたいと思います。
んではまた。
参照
脚注
- 僕とすもけ部長がお昼ごはんを食べる暇がない程度には忙しかったです。 ↩