Документирование API (Postman Collection) для веб-приложения

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.
Разработка и обслуживание любых видов сайтов:
Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Документирование API (Postman Collection) для веб-приложения
Простая
от 1 рабочего дня до 3 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1214
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    852
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1041
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    823
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    815

Документирование API (Postman Collection) для веб-приложения

Postman Collection — формат JSON/YAML (Collection v2.1), описывающий HTTP-запросы, переменные окружения, тесты и примеры ответов. В отличие от OpenAPI, ориентирован на ручное тестирование и совместную работу команды, а не на генерацию документации. Публикуется на Postman API Network или экспортируется в виде файла для onboarding новых разработчиков.

Структура коллекции

{
  "info": {
    "name": "MyApp API",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    { "key": "base_url", "value": "https://api.example.com/v1" },
    { "key": "token", "value": "" }
  ],
  "item": [
    {
      "name": "Auth",
      "item": [
        {
          "name": "Login",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/auth/login",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\"email\": \"[email protected]\", \"password\": \"secret\"}"
            }
          },
          "event": [{
            "listen": "test",
            "script": {
              "exec": [
                "pm.test('Status 200', () => pm.response.to.have.status(200));",
                "const json = pm.response.json();",
                "pm.collectionVariables.set('token', json.data.token);"
              ]
            }
          }]
        }
      ]
    }
  ]
}

pm.collectionVariables.set — ключевой паттерн: тест логина автоматически сохраняет токен, все следующие запросы используют {{token}} в заголовке Authorization.

Environments — разные окружения

{
  "name": "Production",
  "values": [
    { "key": "base_url", "value": "https://api.example.com/v1", "enabled": true },
    { "key": "token", "value": "", "enabled": true }
  ]
}

Отдельные файлы env.development.json, env.staging.json, env.production.json — переключаются в Postman через dropdown. Файлы с секретами не коммитятся в репозиторий (.gitignore), шаблоны без значений — коммитятся.

Pre-request Scripts

// Автоматическое обновление токена перед каждым запросом
const tokenExpiry = pm.collectionVariables.get('token_expiry');
if (!tokenExpiry || Date.now() > parseInt(tokenExpiry)) {
    pm.sendRequest({
        url: pm.variables.get('base_url') + '/auth/refresh',
        method: 'POST',
        header: { 'Content-Type': 'application/json' },
        body: {
            mode: 'raw',
            raw: JSON.stringify({ refresh_token: pm.collectionVariables.get('refresh_token') })
        }
    }, (err, res) => {
        pm.collectionVariables.set('token', res.json().data.access_token);
        pm.collectionVariables.set('token_expiry', Date.now() + 3600000);
    });
}

Генерация из OpenAPI

# Импорт openapi.yaml в коллекцию через Postman CLI
postman collection convert openapi.yaml --output collection.json

# Или через API
curl -X POST https://api.getpostman.com/collections \
  -H "X-Api-Key: $POSTMAN_API_KEY" \
  -d @collection.json

Обратно: из Collection можно экспортировать в OpenAPI через Postman UI (Export → OpenAPI 3.0).

Newman — запуск в CI

npm install -g newman

newman run collection.json \
  --environment env.staging.json \
  --reporters cli,junit \
  --reporter-junit-export results/newman.xml

Интеграция с GitHub Actions:

- name: Run API Tests
  run: |
    newman run collection.json \
      --environment env.ci.json \
      --bail failure

--bail failure останавливает прогон при первой ошибке — удобно для smoke-тестов после деплоя.

Публикация документации

Postman позволяет публиковать коллекцию как интерактивную документацию на <team>.postman.co/docs. Авто-обновление через Postman API:

curl -X PUT "https://api.getpostman.com/collections/$COLLECTION_ID" \
  -H "X-Api-Key: $POSTMAN_API_KEY" \
  -d @collection.json

Сроки

Создание коллекции для API (20–30 эндпоинтов, переменные окружения, тесты с авто-сохранением токена): 1–2 дня. С Newman в CI, pre-request скриптами, публикацией документации: 1 день дополнительно.