В современной веб‑разработке и интеграции систем HTTP REST API стали стандартом взаимодействия между клиентами и серверами. Практически любое мобильное приложение, SPA или микросервис общается с бэкендом через API. Для удобного тестирования, отладки и документирования таких API широко используется инструмент Postman.


Что такое HTTP REST API

REST (Representational State Transfer) - это архитектурный стиль построения API, основанный на работе поверх протокола HTTP. REST‑API использует стандартные HTTP‑методы, URL и коды ответов для взаимодействия между клиентом и сервером.

Ключевые принципы REST:

  • Клиент-сервер - клиент и сервер независимы друг от друга;
  • Stateless - сервер не хранит состояние клиента между запросами;
  • Единообразие интерфейса - ресурсы доступны по URL и управляются HTTP‑методами;
  • Работа с ресурсами - каждый URL представляет ресурс (пользователь, статья, заказ);
  • Форматы данных - чаще всего JSON, реже XML.

Пример REST‑эндпоинта:

GET https://catfact.ninja/fact

Он возвращает JSON с интересным фактом о кошках.


HTTP‑методы

HTTP‑методы определяют какое действие клиент хочет выполнить над ресурсом.

  • GET. Используется для получения данных с сервера. Запросы GET не должны изменять состояние сервера и считаются безопасными.
  • HEAD. Аналогичен GET, но возвращает только заголовки, без тела ответа. Полезен для проверки существования ресурса или кеширования.
  • OPTIONS. Используется для получения информации о том, какие методы поддерживает сервер для конкретного ресурса. Часто применяется при CORS‑запросах.
  • DELETE. Удаляет ресурс на сервере. Обычно возвращает код 204 No Content или 200 OK.
  • PUT. Полностью обновляет ресурс. Клиент отправляет объект целиком, заменяя существующий.
  • PATCH. Частичное обновление ресурса. В отличие от PUT, отправляются только изменяемые поля.
  • POST. Создаёт новый ресурс или запускает действие на сервере. Часто используется для форм, регистрации и авторизации.
  • CONNECT. Используется для установки туннеля (например, при HTTPS через прокси). В обычных REST‑API почти не применяется.
  • TRACE. Позволяет отладить запрос, возвращая его обратно клиенту. В продакшене обычно отключён из‑за соображений безопасности.

Postman

Postman - это мощный инструмент для работы с API, который позволяет:

  • отправлять HTTP‑запросы;
  • группировать их в коллекции;
  • использовать переменные окружений;
  • писать автотесты;
  • выполнять массовые прогоны (Collection Runner);
  • документировать API.

Postman подходит как для разработчиков, так и для QA‑инженеров.


Collections

Коллекция - это логическая группа запросов. Обычно одна коллекция соответствует:

  • одному сервису;
  • одному проекту;
  • версии API.

Пример:

Cat Facts API
├── Get random fact
├── Get facts list

Коллекции удобно экспортировать, импортировать и запускать целиком.


Folders

Внутри коллекций можно создавать папки для дополнительной структуры:

  • Auth
  • Users
  • Articles

Это особенно полезно для больших API с десятками эндпоинтов.


Requests

Каждый запрос в Postman состоит из:

  • HTTP‑метода;
  • URL;
  • заголовков (Headers);
  • параметров (Params);
  • тела запроса (Body).

Пример запроса:

GET https://catfact.ninja/fact

Ответ:

{
    "fact": "Cats have five toes on their front paws, but only four on the back.",
    "length": 63
}

Authorization

Секция Authorization позволяет настраивать авторизацию:

  • No Auth
  • Basic Auth
  • Bearer Token
  • JWT Bearer
  • Digest Auth
  • OAuth 1.0
  • OAuth 2.0
  • API Key

Scripts

Pre‑request Script

Скрипты, которые выполняются до отправки запроса. Обычно используются для:

  • генерации токенов;
  • установки переменных;
  • вычисления дат и хэшей.

Пример:

pm.environment.set("timestamp", Date.now());

Post‑response Script (Tests)

Выполняется после получения ответа. Используется для тестов и проверок.


Variables

Postman поддерживает переменные:

  • Global
  • Collection
  • Environment
  • Local

Пример использования:

{{base_url}}/fact

, где base_url = https://catfact.ninja


Runs для коллекций (Collection Runner)

Collection Runner позволяет:

  • запускать всю коллекцию или папку;
  • выполнять запросы по порядку;
  • использовать данные из CSV/JSON;
  • автоматизировать тестирование API.

Это основа для API‑тестирования и CI/CD.


Написание тестов в Postman

Postman использует JavaScript и библиотеку pm.

- Проверка статус‑кода:

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

- Проверка JSON‑ответа:

pm.test("Response has fact", function () {
    const json = pm.response.json();
    pm.expect(json).to.have.property("fact");
});

- Проверка типа данных:

pm.test("Length is a number", function () {
    const json = pm.response.json();
    pm.expect(json.length).to.be.a("number");
});

- Сохранение значения в переменную:

const json = pm.response.json();
pm.environment.set("cat_fact", json.fact);

Source: Orkhan Alishov's notes