Быстрый старт PolyApiIDE

Пошагово: от установки расширения до первого запроса, переменных, импорта коллекций и прогона. Без тяжёлого десктопа — всё в Chrome.

PolyApiIDE — HTTP-клиент и API IDE в браузере. Коллекции, окружения и ответы хранятся локально в Chrome. Ключ лицензии нужен только для платных функций; Free работает без регистрации и без окна аккаунта.

1. Установите расширение

Подходят Google Chrome, Microsoft Edge и другие браузеры на Chromium.

  1. Рекомендуемый способ: установите из Chrome Web Store — расширение уже опубликовано, аккаунт на сайте не нужен.
  2. Альтернатива для Lifetime-zip или разработки: chrome://extensions/ → режим разработчика → Загрузить распакованное и укажите папку PolyApiIDE.
  3. Закрепите иконку на панели. После обновления файлов нажмите ↻ Reload на карточке расширения.

Установка не требует аккаунта на сайте. Данные коллекций не уходят на сервер, пока вы сами не включите облачный бэкап или AI.

2. Откройте IDE

Клик по иконке → Открыть клиент. Откроется окно:

  • слева — пространства (workspaces), коллекции и дерево запросов;
  • в центре — метод, URL, вкладки Params / Headers / Cookies / Variables / Body / Auth / Scripts / Settings / QA / Load;
  • справа — окружение, curl-превью, интеграции; ссылка Лог действий (Free);
  • внизу — ответ: Body, Headers, Console. Полноэкранный просмотр ответа доступен на Free. Clear консоли — только на вкладке Console.

Под строкой URL после подстановки переменных показывается decoded URL — так проще читать query вроде fields=id,title.

3. Создайте пространство (workspace)

Кнопка «+» в сайдбаре — новое пространство. Тип API задаёт интерфейс редактора:

  • REST — метод, URL, params, headers, body (raw / urlencoded / form-data / файл);
  • GraphQL — endpoint, Query и Variables;
  • WebSocket — Connect / Send message;
  • SOAP — URL, SOAPAction, XML envelope;
  • gRPC — сервис/метод и JSON (transcoding / gateway).

Несколько пространств открываются вкладками сверху. Несохранённые правки при переключении спросят подтверждение.

4. Отправьте первый запрос

Создайте коллекцию («+» у заголовка «Коллекции») и запрос.

  1. Укажите метод и URL. Можно писать {{baseUrl}}/v1/users — значение возьмётся из окружения.
  2. Params — query-параметры; Headers — заголовки. Пустые выключенные строки не уходят в запрос.
  3. Body: none / raw (JSON) / x-www-form-urlencoded / form-data / файл. Для GET и HEAD тело не отправляется (ограничение Chrome fetch).
  4. Auth: для Bearer оставьте {{token}} — подставится переменная token.
  5. Нажмите Send.

Ответ: дерево JSON, заголовки, консоль сессии. Статус, время и размер — в бейджах над телом.

5. Переменные и окружения

Подстановка как в Postman: {{name}} и {identifier}. Динамика IDE: {{$guid}}, {{$timestamp}}, {{$randomInt}} и другие пресеты.

Иерархия (высокий приоритет → низкий): запрос → коллекция → пространство (globals) → окружение.

  • Пустое значение не применяется и не затирает слой ниже. Поэтому пустой token из импорта Postman не скрывает токен окружения.
  • В UI пустая переменная выключена; при вводе значения включается сама. Можно включить вручную и без значения — в подстановку она всё равно не пойдёт.
  • Активное окружение — селект справа, редактор — ⚙.
  • Вкладка Variables у запроса и кнопка «Применённые переменные» показывают итоговый ключ, значение и источник.

В прогоне коллекции непустое значение из data file (CSV/JSON) важнее переменной запроса. Пустая ячейка файла не перекрывает иерархию.

6. Авторизация

Тип Auth на запросе: inherit (как в Postman), bearer, basic, API key, OAuth2, JWT и др.

  • Пустой запрос с inherit берёт auth папки, затем коллекции.
  • Папка Public с noauth отключает Authorization, даже если у коллекции bearer.
  • Пустой bearer/JWT/API key автоматически использует {{token}}.

Если видите 401 — откройте «Применённые переменные» и проверьте, что token не пустой на более высоком уровне и что окружение выбрано.

7. Импорт коллекций

Кнопка ↓ у «Коллекции». На Free: OpenAPI/Swagger, WSDL, GraphQL SDL, .proto, AsyncAPI, Postman Collection / Environment, curl, Insomnia, Hoppscotch, Thunder. Примеры файлов: https://polyapiclient.ru/examples/.

Файлы проверяются до импорта: при ошибке кнопка недоступна. Drag-and-drop на окно открывает ту же модалку.

Патч коллекции или раздела (↗ экспорт / ↙ apply) — точечный обмен правками в команде без полного бэкапа IDE; патчи — на платных тарифах. Файл патча можно положить в директорию с локальным репозиторием и сделать commit / push.

8. Collection Runner и нагрузка

▶ у коллекции или папки открывает runner.

  • Functional — итерации, delay, data file, stop on error, scripts. Отчёт: профиль прогона, список URL (decoded), результат и вывод по каждому запросу.
  • Performance — профили Fixed / Ramp up / Spike / Peak, VU, RPS, бюджеты p95 и ошибок.

Вкладка Load на одном запросе — те же performance-профили. После прогона: Ask AI, PDF, экспорт метрик (JSON, CSV, OpenMetrics, Influx, Grafana, Pushgateway).

Functional и Load — платные функции (Месяц / Год / Lifetime).

9. QA на запросе и сценарии

Вкладка QA у запроса: ожидаемый статус, latency, вхождения в теле, JSON path, проверки auth / PII / 5xx. Результат — сразу после Send.

QA-сценарии пространства — цепочки шагов, ветки по статусу, негативные кейсы (меню ⋯ у запроса). Отчёт — PDF.

Базовый QA на запросе и сценарии доступны на платных тарифах.

10. Прокси, AI, бэкап и лицензия

  • Прокси — на пространстве, коллекции или запросе (уже уровень побеждает). У AI-провайдера свой список прокси.
  • AI — Ask / Explain к запросу и load; несколько провайдеров; спроектировать коллекцию. История чата на сервере — усечённый текст после очистки секретов и персональных данных, без байтов вложений. Живые секреты в промпт не кладите.
  • Бэкап — локальный снапшот, ручной облачный бэкап, отправка на email. Облако не качает данные само — только по кнопке.
  • Лицензия — Настройки → Лицензия. Free без ключа (до 2 активных сессий). Ключ POLY-… привязан к email. Демо 14 дней — один раз на email через форму на сайте; после истечения данные IDE сбрасываются, сделайте бэкап заранее. Подробнее про лимиты устройств — в разделе 11.

11. Активные сессии IDE

Чтобы ключ не использовали десятки людей одновременно, PolyApiIDE считает активные сессии — открытое окно IDE в конкретном профиле браузера на устройстве. Пока IDE открыта, расширение периодически отправляет короткий «heartbeat» на сервер; при закрытии сессия освобождается (с небольшой задержкой).

Лимиты на один ключ / Free:

  • Free — до 2 активных сессий;
  • демо 14 дней — 1 активная сессия;
  • Месяц, Год и Lifetime — до 5 одновременных сессий на ключ.

Это ноутбук + рабочий ПК + запас, а не «один ключ на весь офис». Ключ привязан к email покупателя.

Если открыли IDE на новом устройстве, а лимит занят: появится диалог. Можно нажать «Остаться тут» — тогда текущий профиль займёт слот, а старая сессия будет завершена. Либо закройте IDE на другом устройстве и повторите вход.

Что хранится на сервере для сессии (коллекции и запросы — нет): хеш идентификатора устройства, идентификатор экземпляра расширения, хеш IP, страна по IP (для оценки аномалий), email и тариф. Подробнее — в лицензионном соглашении и политике конфиденциальности.

Если вы легитимно работаете с двух машин — Month / Year / Lifetime как раз для этого. При подозрении на передачу ключа третьим лицам доступ могут ограничить по правилам соглашения.

Частые ошибки на старте

  • 401 при живом токене в окружении — почти всегда пустой token на коллекции или запросе. Пустые значения больше не должны затирать env; перезагрузите расширение, если сборка старая.
  • GET с Network Error «cannot have body» — в запросе осталось тело. Текущие сборки не отправляют body на GET/HEAD.
  • URL без https:// не уйдёт. Проверьте baseUrl в окружении.
  • Не подставился {{token}} — выберите окружение справа и откройте «Применённые переменные».