Echolot
リクエスト

レスポンスのキャプチャ

トークンやIDなど、レスポンスの値を送信のたびに変数へ保存し、ほかのすべてのリクエストが最新の値を読めるようにします。

キャプチャは、リクエストのレスポンスにある値を、送信のたびに変数へ保存します。サインインのレスポンスからアクセストークンを{{token}}にキャプチャすると、 {{token}}を使うすべてのリクエストが、コピーなしで最新のトークンを送信します。トークンが更新されれば、すべてが新しいトークンを受け取ります。

キャプチャはリクエストとともに保存されるので、ワークスペースを持つ全員に有効で、送信をクリックしたときだけでなく、ランナーやフローでも動作します。

レスポンスの値を保存する

キャプチャを作る最も簡単な方法は、レスポンスそのものから作ることです:

  1. リクエストを送信します。Alpenglowの例では、Auth › Sign inを送信します。
  2. ボディタブでJSONツリーを選びます(該当するボディではフォーム、MessagePack、XML)。
  3. access_tokenなどの値にポインタを合わせ、変数に保存…をクリックします。
  4. 変数名を入力するか、パスから提案された名前のままにします。すでに使われている名前は入力中に候補として表示され、選ぶとその変数を置き換えます(パネルにtokenを置き換えと表示されます)。
  5. 保存先で、ウインドウの環境(環境「Staging」)またはワークスペースを選びます。
  6. シークレットにチェックを入れると、値はキーチェーンだけに保存され、ファイルには残りません。認証情報に見える名前(token、secret、password、apiKeyなど)では、最初からチェックが入っています。
  7. 送信のたびに更新にチェックを入れたままにすると、リクエストのキャプチャとして、リクエストとともに保存されます。外すと、値は一度だけ保存されます。
  8. 保存をクリックします。
Sign inのJSONツリー上に表示された「変数に保存」パネル。パスは$.access_token、変数名はtoken、保存先はワークスペース、シークレットと送信のたびに更新にチェック

キャプチャを編集する

リクエストのキャプチャは変数タブのレスポンスからにあり、リクエスト自身の変数の下に表示されます。各行が1つのキャプチャです:

列内容
チェックボックスキャプチャを実行するかどうか。
変数変数の名前。波括弧は付けません。
取得元レスポンスのどこから値を読むか。
パスまたは名前JSONPath、XPath、またはヘッダーやCookieの名前。
保存先環境(リクエスト送信時にウインドウで選ばれているもの)またはワークスペース。
シークレットこのMacのキーチェーンに保存され、ワークスペースのファイルには残りません。すでにシークレットである変数は、そのままシークレットです。

新しい行は値を追加で追加し、削除は−ボタンで行います。送信後、各行には、値を保存できたときは緑のチェックマークが、できなかったときは理由付きのオレンジの警告が表示されます。

値の取得元

取得元パスまたは名前例
JSONJSONボディへのJSONPath。$.access_token
フォームURLエンコードされたボディへのJSONPath。オブジェクトとして読みます。$.access_token
MessagePackMessagePackのボディへのJSONPath。JSONとして読みます。$.access_token
XMLXMLボディへのXPath。/auth/token
ヘッダーレスポンスヘッダーを名前で指定。Location
Cookieレスポンスが設定するCookieを名前で指定。session
ステータスステータスコード。
ボディボディ全体をテキストとして。

環境かワークスペースか

  • 環境は、送信時にウインドウで選ばれている環境に変数を書き込みます。ステージング用のトークンと本番用のトークンのように、サーバごとに異なる値に使います。 環境が選ばれていないと、何も保存されず、行には環境を選ぶかワークスペースに保存するよう表示されます。
  • ワークスペースは、どの環境が選ばれていても同じ、ワークスペース変数に書き込みます。

同じ名前なら環境の値がワークスペースの値より優先されるため、選択中の環境にその名前の変数があると、ワークスペースへのキャプチャは隠れます。 環境を参照してください。

シークレット

キャプチャしたシークレットは、キーチェーンにだけ書き込まれます。ワークスペースのファイルには変数の名前は残りますが、値は残らないので、ワークスペースをコミットできます。 キャプチャするトークン、セッションID、キーには、すべてシークレットをオンにしてください。シークレットを参照してください。

Alpenglowでは、Auth › Sign inが$.access_tokenをワークスペースのシークレットtokenにキャプチャし、OrdersフォルダがそれをBearerトークンとして送信します。

何もキャプチャされないとき

次の場合、キャプチャは変数をそのままにして、送信後に理由を表示します:

  • レスポンスのステータスが400以上の場合:値を保持するのは400未満のレスポンスだけなので、サインインに失敗しても、有効なトークンが上書きされることはありません。
  • パスがレスポンス内で何も見つけられない場合。
  • ボディが32 MBより大きい場合。
  • 環境に保存する設定で、環境が選ばれていない場合。
  • 書き込みが許可されていない場合:AIエージェントがリクエストを送信するときは、そのポリシーが変数の変更を許可するかどうかを決めます。エージェントを参照してください。

キャプチャかレスポンスの値か

{{$response('auth/sign-in', '$.access_token')}}のような動的な値は、 1つのリクエストの最新のレスポンスを直接読み、なければ先にそのリクエストを送信します。キャプチャは代わりに値を変数にコピーするので、多くのリクエストが使う値や、 複数のリクエストが更新できる値に向いています。どちらも同じJSONPathとXPathを読みます。

このページの内容