106
102

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RESTベースのAPIの動作確認を行うならInsomniaが便利

Last updated at Posted at 2017-03-22

APIサーバの動作確認をどうやるか。それが問題だ。

APIサーバ全盛期のサーバサイドですが、RESTベースのAPIサーバとなるとブラウザからでは動作確認が面倒です。

そこで何か良いツールは無いかな? と思ったらInsomniaというツールを見つけました。
有償プランもあるツールですが、無償で使える範囲でも十分便利に使えます。

注意: InsomniaXという別のツールがありますが、これは全く違うツールです。

起動

起動するとこんな感じの画面が出ます。
一番左が保存したAPIリクエストや環境設定、真ん中がリクエスト内容、右がレスポンス結果です。
スクリーンショット 2017-03-22 12.28.19.png

真ん中の部分で送信するURLとメソッド、パラメータ・ヘッダ内容を選択して"Send"ボタンを押すと、結果が右側に表示されます。

スクリーンショット 2017-03-22 20.10.35.png
スクリーンショット 2017-03-22 20.17.58.png

さて、ここまでは類似のツールでもよくあることです。
ここでInsomniaにある便利な機能をご紹介。

environment切り替え

同じAPIだけど、ローカルやdev環境ごとにホスト名が違ったりするのを別々のAPIとして保存するのは時間の無駄です。
環境ごとに異なるパラメータを"environment"として定義することで、それをワンクリックで切り替えることができます。

例えば、"local", "dev1", "dev2"という3つの環境があってホスト名が

  • local: api.localhost
  • dev1: api.dev1.example.com
  • dev2: api.dev2.example.com

だとするなら、このような3つの"environment"を作成して、環境に依存するデータを保存しておけば

スクリーンショット 2017-03-22 20.25.33.png

スクリーンショット 2017-03-22 20.25.39.png

スクリーンショット 2017-03-22 20.25.46.png

APIのURLは以下のように書くことができます。

スクリーンショット 2017-03-22 20.28.29.png

{{basename}}が選択した"environment"のbasenameの値で置換されるわけですね。

この置換はヘッダ指定などにも使うことができますので、認証情報(ユーザ名・パスワード、トークン)などを環境ごとに切り替えることも可能です。

スクリーンショット 2017-03-22 21.03.13.png

コマンド生成

さらに便利なのは、コマンド生成機能です。右クリックから"Generate Code"を選択すると、

スクリーンショット 2017-03-22 21.12.18.png

さまざまな言語のさまざまなツールで同等の結果を得るためのコードを得ることができます。

スクリーンショット 2017-03-22 21.25.15.png
スクリーンショット 2017-03-22 21.27.34.png

このコード生成機能があれば、このツールがない環境でも同じリクエストを実行することができますし、プログラムコードに組み込むことができます。
スクリーンショット 2017-03-22 21.29.55.png

できればこんな機能が欲しい。 

非常に便利なInsomniaですが、あともう少し。という部分もあります。

AuthタブがDigest認証や、Bearer認証にも対応してほしい。

リクエストにAuthというタブがあって、Authorizationヘッダを生成してくれるのですが、Basic認証のみの対応でDigest認証や、Bearer認証には対応していません。

スクリーンショット 2017-03-22 21.43.05.png

しょうがないので、HeadersタブでAuthorizationヘッダを自前で追加する必要があります。ぜひDigest認証や、Bearer認証にも対応してほしいところです。1

Validate SSL Cetrificates を environment ごとに設定できるようにしてほしい。

https通信時に証明書の検証を行うかどうかをValidate SSL Cetrificatesという設定で選択できます。
ローカル環境ではオレオレ証明書で運用することが多いので、この設定がないと困ります。

スクリーンショット 2017-03-22 21.46.45.png

しかし、この設定はグローバルオプションとなっているので、環境ごとの設定ができません。
ちゃんとした環境では証明書の検証を行う必要がある。というときに不便です。

proxyの設定も同じでグローバルオプションになっているようです。

詳しいドキュメントは

こちらを参照してください。
良いAPIライフを。

  1. (2017-06-07追記) Digest認証はVersion 5.0.1で、Bearer認証はVersion 5.2.0で対応となりました。

106
102
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
106
102

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?