これは、Postman Webブラウザ版アプリ(以下、Postman Webアプリ)利用ユーザー向けの記事です。
はじめに
Postman Webアプリを使う際に、APIリクエストの送信はエージェント経由で行われます。Webブラウザには、CORS(クロスオリジンリソース共有)制限がありますが、これを回避するためにPostman Webアプリは、APIリクエストをエージェントにルーティングし、エージェントが代わりにAPIリクエストをターゲットに送信します。したがって、Postman Webアプリを使う場合は、どのPostman エージェント経由でリクエストを送信するのか選択する必要があります。
Postman では、以下の4種類のエージェントが用意されています。本記事では、このPostman エージェントの選び方について解説します。
- Postman Desktop Agent (以下、Desktop エージェント)
- Postman Cloud Agent(以下、Cloud エージェント)
- Postman Interceptor Agent(以下、Interceptor エージェント)
- Postman Browser Agent(以下、Browser エージェント)
今どのPostmanエージェントを選択しているのかは、次のようにアプリのフッターの「xx Agent」から確認できます。
ここでは、Desktop Agentを選択しています。
結論だけ知りたい人
最後のこの部分だけ読んでいただければと
Postman エージェントの比較
1つずつポイントを解説していきます。
Desktop エージェント
Desktop エージェント は、ローカルPC上で実行されるアプリケーションです。Web ブラウザ上で API リクエストを送信する際に、ローカルネットワークを経由することで CORS の制限を回避できます。
特徴
- Postman エージェントアプリのインストールが可能であれば、これを最も推奨
- CORS 制限を回避可能
- 全種類の API リクエスト(HTTP, WebSocket, Socket.io, gRPC, MQTT, GraphQL)をサポート
- ローカルネットワークやプライベートリソースへのアクセスが可能
- Safari では利用不可
- (Postman エージェントアプリ)のインストールが必要
インストールと更新
- Postman Web アプリから Download Desktop Agent を選択して(Postman Agentアプリ)をダウンロード
- インストール後、最新バージョンを使用することが推奨される
- Postman Web アプリまたはエージェントメニューからアップデートが可能
Cloud エージェント
Cloudエージェント は、リクエストを Postmanのクラウドサーバー経由で送信するエージェントです。
特徴
- CORS 制限を回避可能
- インストール不要
- HTTP リクエストのみサポート(WebSocket, gRPC, MQTT, GraphQL などは不可)
- ローカルネットワークやプライベートリソースにはアクセス不可
- Postman のプランに応じてリクエスト数の制限あり
Interceptor エージェント
Interceptor エージェント は、ブラウザ拡張機能として動作するエージェントで、API トラフィックのキャプチャと検査が可能です。
特徴
- CORS 制限を回避可能
- デスクトップアプリのインストール不要
- HTTP リクエストのみサポート(WebSocket, gRPC, MQTT, GraphQL などは不可)
- Safari でも使用可能
- CA、自己署名証明書、クライアント証明書は使用不可
- SSL 証明書検証や暗号化プロトコルのカスタマイズ不可
インストール方法
- Chrome、Firefox、Edge などのブラウザに拡張機能としてインストール可能
- インストールについて詳しくはこちらを参照ください
Browser エージェント
Browserエージェント は、ブラウザ自体で API リクエストを送信するエージェントです。
特徴
- 基本的には利用をおすすめできないエージェント(CORS制限ありで、利用制約が強い)
- CORS 制限が発生する可能性あり
- インストール不要
- HTTP リクエストのみサポート(WebSocket, gRPC, MQTT, GraphQL などは不可)
Postman エージェントの比較表
Postman エージェント | CORS 制限なし | 追加インストールが不要 | リクエストはローカルから送信 | その他制限 |
---|---|---|---|---|
Desktop エージェント | ◯ | ✗(Desktop エージェントアプリが必要) | ◯(エージェントアプリ経由) | Safari 非対応 |
Cloud エージェント | ◯ | ◯ | ✗(クラウド経由) | - ローカル/プライベートリソースにアクセス不可、使用制限あり - HTTP リクエストのみサポート |
Interceptor エージェント | ◯ | ✗(Interceptor用ブラウザ拡張機能が必要) | ◯(ブラウザ経由) | - CA/自己署名証明書/クライアント証明書が使用不可 - HTTP リクエストのみサポート |
Browser エージェント | ✗(CORS 制限の可能性あり) | ◯ | ◯(ブラウザ経由) | HTTP リクエストのみサポート |
* HTTP リクエストのみサポート => WebSocket, gRPC, MQTT, GraphQL などは利用不可
結局、どの Postmanエージェントを選ぶべきか?
これまでのPostman エージェント比較内容を整理すると、次のような選択になるかとおもいます。
- ローカルからリクエストを送信したい場合 → Desktopエージェント または、Interceptor エージェント (もし、Desktop エージェントアプリインストール可能ならば Desktopエージェントを推奨)
- アプリのインストールは難しいが、ブラウザ拡張追加のみで簡単に CORS 制限の回避とローカルからのリクエスト送信を実現したい場合 → Interceptorエージェント(ただしHTTPリクエストのみ利用可能)
- すべての API リクエストを送信したい場合 → Desktopエージェント
- インストール不要で HTTP リクエストを送信したい場合 → Cloudエージェント (ただしクラウドからの送信、かつHTTPリクエストのみ利用可能)
*Browserエージェントはオススメできないので選択から省いてます
なお、Postman Web アプリでは、自動的に最適なエージェントを選択する Auto-select オプションも利用できます。用途に応じて適切なエージェントを活用しましょう。