APIのテストツールのInsomniaで、ログインしてトークンを取ってからリクエストさせるようにさせます。
Insomniaを始めとしたテストツールでは環境変数にログイン情報やAPIキーを入れておくことで、認証付きのリクエストも送ることができます。
ですがリクエストしたいAPIが一時的なアクセストークンを必要としている場合、トークンの有効期限の都度、取得し直す必要があります。
Insomniaではリクエストを送る際、別のリクエストを使ってトークンを取得し、その結果をそのリクエストに入れて送信することができます。
ログインリクエストの作成
まずはトークンが取れるようにログインリクエストを作成します。
大体のシステムで必要なものは
- ログイン用URL
- ユーザーID
- パスワード
です。
Insomniaでリクエストを作成し、必要な情報を埋めます。
この例では /auth/v1/token
というエンドポイントに POST
でリクエストを行い、JSONでIDとパスワードを入れる、というものでした。
IDとパスワードは環境変数を使っています。
実際にリクエストを組み立てる場合には実システムの通信を確認し、どういった内容で送るかを確認しておきます。
Insomniaからリクエストを送ってトークンが取れることを確認します。
この例では
{
access_token: "xxxxxxx",
....
}
として、直下の access_token
でトークンが取れていることを確認しました。
使いたいリクエストの作成
実際に送りたいリクエストを作成します。こちらのリクエストも、トークンを送るヘッダー名を確認しておきます。この例では authorization
というヘッダーに Bearer
で始まる文字列にトークンを入れていました。1
Auth
タブから Bearer
を選びます。
この TOKEN
に先ほどのリクエストの戻り値を使いたいため、TOKEN
の箇所で CTRL+Space
を押します。
そうすると利用できる特殊な変数などが表示されます。
真ん中より少し下にある Response => Body Attribute
を選びます。
選択した直後は文字が赤いのですが、これをクリックするとポップアップが開いて編集することができます。
それぞれの項目を埋めていきます。
設定名 | 説明 |
---|---|
Function to Perform | Response (他のレスポンスを参照)を選びます |
Attribute | Body Attribute (レスポンスボディの属性を利用)を選びます |
Request | 先ほど作成したトークン取得のリクエスト名を指定します。ここでは POST Login(Get Access Token)
|
Filter (JSONPath or XPath) | 利用するトークンをJSONPath もしくは XPath で指定します。 |
Trigger Behavior | トークン取得を利用する頻度を選びます。都度取りに行くこともできますが、ここでは When Expired(期限が切れたら取得)を選択しました。 |
Max age | 期限切れ前に利用すると判断する最大の秒数を指定します。 |
Preview | 取得される内容がここにプレビューされます。かなり便利! |
JSONPath もしくは XPath
ここでは $.access_token
としました。
利用方法はこちらを参考にしました。
動作確認
ここまでできたら動作確認を行います。
無事にリクエストがされていたら成功です。
参考ページ