コンテンツにスキップ

リクエストの構成とリプレイ(Composer)

キャプチャは「見る」だけではありません。Trace Eagleのリクエストコンポーザー(Composer)は、「実際にキャプチャしたリクエスト」と「手動での構築とデバッグ」を一か所にまとめます。キャプチャしたどのリクエストもそのまま再送でき、パラメータを調整してから再送することもできます。ゼロからリクエストを組み立てて送ることも可能です。キャプチャツールと別のAPIデバッグツールを行ったり来たりする必要はもうありません。


  • 再送 / 編集してリプレイ:トラフィックリストで右クリックするか、詳細パネルで「編集して再送」をクリックすると、このキャプチャしたリクエストがそのままコンポーザーに読み込まれます。アドレスはキャプチャ時のプロトコル / ホスト / ポートから復元され、無関係な接続ヘッダーは取り除かれ、ボディとそのタイプは内容から検出されます。すべて自動です。いくつかのパラメータを調整して再送します。
  • ゼロから構築:コンポーザーの中で、新しいリクエストを手で組み立てます。

どちらの入口も同じ送信チャネルを使い、結果は独立したコンポーザーセッションタブに記録され(完全な履歴が残ります)、そこではキャプチャしたリクエストと同じく、閲覧、再編集、比較ができます。


2. リクエストを手で組み立てる

Section titled “2. リクエストを手で組み立てる”
  • リクエストライン:メソッド(GET / POST / PUT / DELETE / PATCH / HEAD / OPTIONS)+ URL。
  • パラメータテーブル:クエリパラメータはテーブルで行ごとに管理され、URLとは分けて保持され、送信時にのみ組み立てられます。これにより中の動的プレースホルダーが早すぎるエンコードで壊れることがありません。
  • ヘッダーテーブル:任意のヘッダーを行ごとに追加、削除、編集できます。
  • 認証ヘルパー:None / Bearer Token / Basic(ユーザー名 + パスワード、base64は自動)。自分でAuthorizationヘッダーを書いていない場合にのみ効きます。
  • ボディ:なし / JSON / フォーム(form-urlencoded) / 生テキスト。JSONまたはフォームを選ぶと、対応するContent-Typeが自動的に追加されます。

3. 動的な値:署名 / 暗号化されたプライベートAPIをさばく

Section titled “3. 動的な値:署名 / 暗号化されたプライベートAPIをさばく”

どのフィールドにも ${...} 動的値を含められ、送信前にエンジンが評価します。これは、署名 / タイムスタンプ / nonce を伴うプライベートAPIをデバッグする際の命綱です。

動的値 用途
${uuid} / ${randomUUID} ランダムなUUID
${timestamp} 秒単位のUnixタイムスタンプ
${timestampMs} / ${now} ミリ秒単位のUnixタイムスタンプ
${random} 16桁のランダムな16進数
${randomInt:min,max} 範囲内のランダムな整数
${base64:} / ${base64url:} / ${base64decode:} Base64エンコード / デコード
${md5:} / ${sha1:} / ${sha256:} ハッシュ
${hmacSha256:key,msg} / ${hmacSha256Base64:key,msg} / ${hmacSha1:key,msg} HMAC署名
${urlEncode:} / ${upper:} / ${lower:} URLエンコード / 大文字小文字変換
  • ネスト対応:例えば ${hmacSha256:${secret},${body}} のように、まず変数を解決してから署名を計算します。
  • 解決できないものはそのまま保持されるので、どの変数が評価されなかったかが一目でわかります。一般的なツールは、未定義の変数に当たるとエラーになったり空の値を送ったりしがちです。

コンポーザー + URLに、パラメータ / ヘッダー / 認証 / ボディの各セクション。フィールドには ${...} 動的値を含められ(例えば ${hmacSha256:...} でその場で署名を計算)、あわせてコレクションと環境も備える


  • 環境変数:${name} を環境変数として切り出し、複数の環境(「dev / test / prod」など)をワンクリックで切り替えられます。変数は互いに参照でき、連鎖的に展開されます。
  • コレクション:よく使うリクエストを名前付きフォルダにまとめ、いつでも現在のリクエストを保存し、好きなときに読み戻して再利用できます。
  • ワークスペースの自動保存:コレクション + 環境はプレーンテキストでバージョン管理可能なファイルとして自動保存され、差分表示やレビューができるので、チーム内での共有や履歴の追跡が容易です。

  • cURLインポート:cURLコマンドを貼り付けると、編集可能なリクエストにパースします(-X / -H / -d / --data-* / -u / -b / -A / -e などの一般的なパラメータに対応し、引用符の扱いを含め、ボディがある場合は自動的にPOSTとして扱います)。
  • コレクションファイルのインポート:外部のAPIコレクションファイルをインポートします(生ボディが主眼、グループは単一のコレクションにフラット化されます)。
  • コード生成:現在のリクエストをcURL / Python / JavaScript(fetch) / Go / OkHttp のコードスニペットにワンクリックでエクスポートできます。スクリプトを書いたり、プロジェクトに組み込んだり、同僚と共有したりするのに便利です。

6. 忠実な送信:再現を実際の経路に近づける

Section titled “6. 忠実な送信:再現を実際の経路に近づける”

リプレイの価値は「再現したリクエストが実環境と一致すること」にあります。コンポーザーの設定では、送信をキャプチャセッションと同じネットワーク特性に保つことができ、結果がより信頼できるものになります。

  • 上流プロキシ:上流プロキシ(http / socks5)経由で送信し、リプレイしたリクエストを会社のプロキシ、踏み台、その他の二次プロキシにルーティングします。
  • リクエスト特性の忠実性(ブラウザプロファイル):リプレイしたリクエストのネットワーク特性を標準的なクライアント(一般的なブラウザなど)のものに戻し、再現したリクエストを実際の経路と一致させます。
  • カスタムDNS:どのDNSがドメインを解決するかを指定し、汚染を避けたり指定した経路をとったりします。

送信前に、すべての ${...} 動的値がまずローカルで評価されるので、実際に何が送られるかを常に正確に確認できます。各送信は独立したコンポーザーセッションを通り、キャプチャセッションから隔離されます。結果にはステータスコード、プロトコル、経過時間がインラインで表示され、セッション内にフローとして記録されるので、キャプチャしたリクエストと同じく、再閲覧、再編集、比較ができます。


7. リクエスト比較(Diff)と組み合わせる

Section titled “7. リクエスト比較(Diff)と組み合わせる”

構成 / リプレイしたリクエストは、履歴にある実際のキャプチャリクエストと行単位で並べて比較でき、「同じエンドポイントで今回と前回で何がどう違うのか」を素早く特定できます。署名、パラメータ、レスポンスの差異のトラブルシューティングに特に効率的です。リクエスト比較を参照してください。


プロキシキャプチャへ戻る · 関連:リライトルールとブレークポイント · リクエスト比較