モチベーション
オープンデータや企業のAPIなど、様々なリソースにアクセスしやすい環境が整ってきました。
ただ、APIの調査を進めるうえでの簡易的なクライアントとして、何が適切なのか自分の中で決定打になるものが無かったので、簡易的に調査・比較してみました。
ブラウザ
ブラウザのメリット
なにより、ブラウジングからAPIを叩いて表示までの流れがスムーズです。
JSON Viewer のようなブラウザ拡張機能を導入すれば、JSONデータを整形して表示できるので、調査段階では大変重宝します。
また、もっとリッチな拡張機能を導入することで、ネイティブのAPIクライアントのような機能を利用することができます。
ブラウザのデメリット
拡張機能が便利とはいえ、専用アプリほどの機能性は無い印象です。
たとえば、様々な言語でのクライアントコードを出力する機能や、HTTP 以外のプロトコルのリクエストを送受信するのには不自由でした。
専用アプリ(Postmanなど)
Postman のメリット
何より高機能です。HTTP だけではなく、gRPC や WebSocket などにも対応していますし、設定値をエクスポート・インポートしてチーム内で展開するなど、開発で使いたい機能はほぼほぼ揃っています。
また、Postman で設定した値をベースに、メジャーな言語でのクライアントコードを出力してくれるので、簡易的なリクエスト機能をサクッと作れるのは開発者にとって嬉しいです。
Postman のデメリット
ローカルにアプリを入れないといけないのがややめんどくさいなと感じます。API の調査以外で専用アプリを入れる必要が無い人からすれば、それだけのためにインストールするのかという気持ちになります。
がっつりと使わないのであれば、多少の学習コストも邪魔になるなと思いました。
既にインストールされていて、使い方も分かっている自分からするとこれらのデメリットは特に問題にならないので、結構便利だなと思います。
コマンドライン
コマンドラインのメリット
最大のメリットはGUIが無いことだと思います。GUIが無いだけで自動化の難易度がグッと下がります。
また、パイプラインやスクリプトを組むことで実質ほとんどのニーズに対応できる気がします。
コマンドラインのデメリット
コマンドライン好きな立場として言いにくいですが、リクエストのコストはブラウザや専用アプリよりも高いと思います。今回の目的である、サクッとAPIを叩いてみるみたいな用途には正直向いていないと思いました。
結論
GET だけなどの簡単なAPIの調査については、ブラウザ一択かなと思います。わざわざ専用アプリを立ち上げるほどでもないですし、軽めの拡張機能を導入するだけで利便性がグッと上がります。
複数の HTTP メソッドでのアクセスが必要だったり、HTTP 以外のプロトコルを利用する・サンプルコードも出力したいみたいな場合は、Postman などの専用アプリを使うしかないと思います。
宣伝
フリーランスのエンジニアとして活動してます。エンジニアとしてシステム開発に参画することもできますし、取引先によっては若手の育成をしながら開発したり、アドバイザーに近いポジションで入ったりもしています。最近は外部PMのような形で開発に関わることも増えてきました。
カジュアルに話す場をご用意できますので、下記のフォームよりご連絡ください。