test
api
rest
Insomnia

Insomniaでリクエストチェーンを使う

:sleeping: Insomniaとは

insomnia.png
RESTクライアントです。
2017/05にオープンソース化しました。
Insomnia

:chains:リクエストチェーン

今回は、Insomniaの便利機能の一つであるリクエストチェーンの紹介です。
その名の通り、リクエストをチェーンできる機能なのですが、注意点が何個かあります。

:warning: 現在は試験的な機能(experimental feature)となっています。
:warning: 現状は、過去に投げたレスポンスの値を参照する機能しか持っていません。
つまり、リクエストを実行する前に別のリクエストを実行するわけではありません
(将来的に実装予定ではあるとのこと)

最も想定されるユースケースが、認証を要求されるエンドポイントに認証時のレスポンスで返ってきたtokenを入れたい!というケースだと思うので、その例を記載します。

:star2: 前提

以下のエンドポイントがある例を想定した設定方法となります。

  1. https://api.example.com/v1/auth (POST:認証エンドポイント)
  2. https://api.example.com/v1/settings (GET:設定情報取得エンドポイント ※要認証)

:gear: 設定

  1. 認証エンドポイントはこれまで通り認証情報をPOSTするよう設定します。
  2. 設定情報取得エンドポイントのAuthタブからBearer Tokenを選択します。 setting1.png
  3. Response => Headerを選択します。 setting1.png
  4. Requestに認証のエンドポイントへのリクエストを指定し、Header NameAuthorizationを指定します。 Live PreviewBearer Tokenが表示されていれば、成功です。 setting1.png
  5. あとはリクエストを送るだけです。

:warning: 注意で書いている通り、現状はトークンが切れるたびに認証エンドポイントへのリクエストを送り、トークンを更新する必要があります。
それすらめんどくさい方は、認証エンドポイントへのリクエストを定期実行(Sendを右クリックし、Repeat on Intervalを選択)させてあげるといいでしょう。

:bookmark: 所感

今まではトークンが有効期限切れになるたびに、再認証して、環境変数に設定したトークンを書き換えて、ということをやっていましたが、これでやや簡便にレスポンスの確認ができるようになりました:heart_eyes:
ちょっとまだ気持ち悪さが残るので、本来の意味でのリクエストチェーンが実装されるのが待ち遠しいですが...:confounded:
Insomniaにはプラグイン機構もあり、そちらでも対応できるのかもしれません。
現状、公式でドキュメント化されていないので、され次第、紹介しようと思います:relaxed:

公式ドキュメント