テスト用に API エンドポイントを本番から localhost へ切り替える
このチュートリアルの最後には、次のことができるようになります:
- Mac に Proxyman をセットアップする
- ブラウザのリクエスト/レスポンスをキャプチャする
- ✅ 本番環境から localhost 環境へマップする
なぜ API エンドポイントを本番環境からローカル環境に切り替える必要があるのか?
開発者や QA であれば、API エンドポイントを本番環境でテストすることは珍しくありません。しかし、新しい変更を加えたコードを確かめるために、ローカル環境の API エンドポイントをテストしたい場面もあります。
前提条件
- 最新の Proxyman macOS をダウンロードします。
始める前に、Mac に Proxyman をインストールし、Mac で Proxyman の証明書を信頼しておいてください。
Proxyman を初めて使う方は、macOS 向けの入門ガイドに従って Mac をセットアップしてください。
最後に、ブラウザで www.producthunt.com などの任意のウェブサイトを開き、通信をキャプチャしてみてください。これで Proxyman は、ブラウザからの HTTPS 通信をキャプチャして復号できるようになります。

シナリオ 1:本番環境から localhost 環境へ切り替える
たとえば、API エンドポイントが本番環境の https://httpbin.org でホストされているとします。ローカルの HTTPBin サーバー http://localhost:8080 を使って、localhost 環境でウェブサイトをテストしたいとします。Proxyman の Map Remote ツールを使えば、API エンドポイントを本番環境から localhost 環境へ切り替えられます。
例えば、次のようになります:
- https://httpbin.org/get?id=123 -> http://localhost:8080/get?id=123
- https://httpbin.org/post -> http://localhost:8080/post
- https://httpbin.org/put -> http://localhost:8080/put
- https://httpbin.org/delete -> http://localhost:8080/delete
やり方を見ていきましょう。
ステップ 1:本番環境の HTTPS 通信をキャプチャする
ブラウザで https://httpbin.org/get?id=123 にアクセスし、通信をキャプチャしてください。この時点で、Proxyman がブラウザからの HTTPS 通信をキャプチャして復号できていることを確認してください。

できていない場合は、Proxyman で SSL/TLS Interception を有効にしてください。

その後、リクエストをもう一度送信してください。
ステップ 2:ローカルの HTTPBin サーバーを準備する
NodeJS や Python で作成した HTTPBin サーバーでも構いませんが、このチュートリアルでは HTTPBin をローカルの HTTPBin サーバーとして使用します。
HTTPBin サーバーを localhost:8080 で起動しましょう。
docker run -p 8080:80 kennethreitz/httpbin
Docker がインストールされていない場合は、こちらからインストールしてください。
HTTPBin サーバーが localhost:8080 で動作していることを確認してください。
curl http://localhost:8080/get?id=123
HTTPBin サーバーからのレスポンスが表示されれば、localhost:8080 で HTTPBin サーバーが動作しています。

ステップ 3:本番環境から localhost 環境へマップする
ステップ 1 のリクエストを右クリックし、Tools → Map Remote を選択します。次の設定を使用してください:
Map Rule
- Name:Production から localhost への Map
- Rule:https://httpbin.org/*
- Method で「ANY」を選択し、「Including subpath」チェックボックスをオンにします
Map To
- Protocol:http
- host:localhost
- port:8080

このルールを作成すると、https://httpbin.org/* へのすべてのリクエストは http://localhost:8080/* にマップされ、ローカルの HTTPBin サーバーに送信されます。
ステップ 4:API エンドポイントをテストする
ブラウザで https://httpbin.org/get?id=123 に再度アクセスしてください。ローカルの HTTPBin サーバーからのレスポンスが表示されます。

Summary タブ → Debugging Tools セクションを開くと、リクエストにどのルールが適用され、どのようにマップされたかを確認できます。

まとめ
Map Remote ツールは、コードを変更せずに API エンドポイントをテストするのに役立ちます。API エンドポイントを、本番環境から localhost 環境へその場で切り替えられます。
本番環境へのすべてのリクエストをマップするのではなく、まずはホストとパスを絞ったルールから始めてください。特に複数のツールを有効にしている場合は、Summary タブで、どのルールが呼び出しを変更したかを確認してください。ローカルでのテストが終わったら、ルールをオフにしてください。そうしないと、後のセッションで本番環境向けに見える通信が、古いローカルサーバーに黙って送られてしまうおそれがあります。
次のステップ
- Proxyman をダウンロード:Proxyman ダウンロード
- Proxyman の詳細:Proxyman ドキュメント
- Map Remote ツールの詳細:Map Remote ツールのドキュメント
