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. Нажмите Сохранить.
Панель «Сохранить в переменную» над JSON-деревом ответа Sign in: путь $.access_token, имя переменной token, «Сохранить в» — «Рабочее пространство», отмечены «Секрет» и «Обновлять при каждой отправке»

Правка захватов

Захваты запроса находятся на его вкладке Переменные в разделе Из ответа, под собственными переменными запроса. Каждая строка — один захват:

СтолбецЧто содержит
ФлажокВыполняется ли захват.
ПеременнаяИмя переменной без скобок.
ОткудаОткуда в ответе читается значение.
Путь или имяJSONPath, XPath либо имя заголовка или cookie.
Сохранить вОкружение (выбранное для окна при отправке запроса) или Рабочее пространство.
СекретХранится в Связке ключей на этом Mac и никогда не попадает в файлы рабочего пространства. Переменная, уже являющаяся секретом, остаётся ею.

Нажмите Добавить значение, чтобы добавить строку, и кнопку −, чтобы удалить. После отправки каждая строка показывает зелёную галочку, если значение сохранено, или оранжевое предупреждение с причиной, если нет.

Откуда берутся значения

ОткудаПуть или имяПример
JSONJSONPath в теле JSON.$.access_token
ФормаJSONPath в теле URL-encoded, прочитанном как объект.$.access_token
MessagePackJSONPath в теле MessagePack, прочитанном как JSON.$.access_token
XMLXPath в теле XML./auth/token
ЗаголовокЗаголовок ответа по имени.Location
CookieCookie, который устанавливает ответ, по имени.session
СтатусКод состояния.
ТелоВсё тело как текст.

Окружение или рабочее пространство

  • Окружение записывает переменную в окружение, выбранное для окна в момент отправки. Используйте его для значений, которые различаются по серверам, например токен для staging и токен для production. Если окружение не выбрано, ничего не сохраняется, а строка предлагает выбрать окружение или сохранить в рабочее пространство.
  • Рабочее пространство записывает переменную рабочего пространства, одинаковую при любом выбранном окружении.

Значение окружения главнее значения рабочего пространства с тем же именем, поэтому захват в рабочее пространство скрыт, если в выбранном окружении есть переменная с таким именем. См. Окружения.

Секреты

Захваченный секрет записывается только в Связку ключей. Файл рабочего пространства называет переменную, но никогда не содержит её значения, поэтому рабочее пространство можно коммитить. Включайте Секрет для каждого токена, ID сеанса или ключа, который вы захватываете. См. Секреты.

В Alpenglow Auth › Sign in захватывает $.access_token в секрет рабочего пространства token, а папка Orders отправляет его как Bearer-токен.

Если ничего не захвачено

Захват оставляет переменную как была и после отправки сообщает почему, когда:

  • статус ответа 400 или больше: значения сохраняются только из ответов ниже 400, поэтому неудачный вход никогда не затирает хороший токен;
  • путь ничего не находит в ответе;
  • тело больше 32 МБ;
  • захват сохраняется в окружение, а окружение не выбрано;
  • запись не разрешена: когда запрос отправляет ИИ-агент, его политика решает, можно ли ему менять переменные. См. Агенты.

Захваты или значения из ответа

Динамические значения вроде {{$response('auth/sign-in', '$.access_token')}} читают последний ответ одного запроса напрямую и, если ответа нет, сначала отправляют его. Захват же копирует значение в переменную, что подходит для значения, которое используют многие запросы или которое могут обновлять несколько запросов. Оба способа читают одни и те же JSONPath и XPath.

На этой странице