Ответ
Да, тело ответа можно сохранить в переменную через скрипт во вкладке Tests. Это основа для создания цепочек запросов.
1. Сохранение значения из JSON-ответа:
// В скрипте 'Tests' текущего запроса
let jsonData = pm.response.json();
pm.environment.set("auth_token", jsonData.token); // В переменную окружения
pm.collectionVariables.set("last_user_id", jsonData.user.id); // В переменную коллекции
2. Сохранение всего тела (как текст):
pm.environment.set("raw_response", pm.response.text());
3. Использование переменной в следующем запросе:
- В URL, параметрах или теле запроса используйте синтаксис
{{variable_name}}.{ "Authorization": "Bearer {{auth_token}}", "userId": "{{last_user_id}}" }
Типы переменных в Postman:
- Локальные (
pm.variables.set()) — только для текущего запроса. - Коллекции (
pm.collectionVariables.set()) — для всех запросов в коллекции. - Окружения (
pm.environment.set()) — для выбранного environment (наиболее гибкий вариант). - Глобальные (
pm.globals.set()) — для всех запросов (используйте осторожно).
Ответ 18+ 🔞
О, смотри-ка, какая тема подъехала! Просто пиздец, как вовремя. Ты знаешь, сколько народу об эту тему лбы бьёт, как тот Герасим, блядь, в рассказе Тургенева? "Му-му", блядь, и всё, нихуя не понял.
Так вот, слушай сюда, мой друг. Postman — это не просто хуйня какая-то, где ты кнопки тыкаешь. Это, блядь, целый театр, ёперный театр! Можно запросы строить так, чтобы они друг за другом, как паровозики, ебашили. А секрет-то весь — в сохранении данных из ответа. Вот ты получил, допустим, токен. И что, ты его в блокнотик ручкой переписывать будешь? Нет, блядь, кот собака сука! Он сам себе сохранит.
Смотри, как это делается, внатуре. Всё крутится вокруг вкладки Tests. Это не тесты в смысле "сдал-не сдал". Это скрипт, который выполняется после того, как пришёл ответ. Вот там-то и творится магия.
1. Вытащить кусок из JSON и сохранить его куда надо:
Представь, ответ пришёл такой: {"token": "секретный_хуюмент", "user": {"id": 123}}. Нам надо это схватить.
// Пишем это в скрипте 'Tests' того запроса, который токен вернул
let jsonData = pm.response.json(); // Прочитали ответ как объект
pm.environment.set("auth_token", jsonData.token); // Запихнули токен в переменные окружения
pm.collectionVariables.set("last_user_id", jsonData.user.id); // А айдишник пользователя — в переменные коллекции
Вот и всё, ебать мои старые костыли! Теперь у тебя есть auth_token и last_user_id, которые живут своей жизнью.
2. А если надо сохранить ВСЁ тело ответа, как есть, целиком? На случай, если ты параноик или тебе потом разбирать этот пиздец по косточкам.
pm.environment.set("raw_response", pm.response.text()); // Просто берём весь текст и кладём в переменную
3. Ну и главное — как этим потом пользоваться?
А вот так, просто до охуения. В следующем запросе, в URL, в заголовках, в теле — где угодно пишешь {{имя_переменной}}.
{
"Authorization": "Bearer {{auth_token}}", // Подставится твой сохранённый токен
"userId": "{{last_user_id}}" // И сюда влезет айдишник
}
Postman увидит эти фигурные скобки, хлопнет себя по лбу — "А, точно!" — и подставит на место реальные значения. Красота, блядь!
А теперь про типы переменных, а то запутаться можно, как в трёх соснах:
- Локальные (
pm.variables.set()) — это как презерватив на один раз. Только для этого конкретного запроса и всё. Удалился — и хуй с ним. - Коллекции (
pm.collectionVariables.set()) — уже серьёзнее. Создал в коллекции — и все запросы внутри неё могут этим пользоваться. Семейное, так сказать. - Окружения (
pm.environment.set()) — а это самый гибкий лохотрон, я тебе скажу. Создаёшь разные "окружения" (типа "тест", "продакшн"), и в каждом свои значения переменных. Переключил окружение — и все запросы автоматом пошли на другой сервер с другими ключами. Удобно, блядь, как швейцарский нож. - Глобальные (
pm.globals.set()) — ну это уже овердохуища власти. Поставил глобально — и ВО ВСЕХ запросах ВО ВСЕХ коллекциях эта переменная будет. Пользоваться — как огнём, осторожно, а то спалишь всё к хуям.
Вот и вся наука. Не "му-му", а конкретное знание. Теперь иди и строй свои цепочки, как тот самый паровозик, только чтобы он не в пизду с рельсов съехал.