Все разделы

Основные возможности

Импорт и экспорт

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

Tetiva читает и пишет один формат обмена — Postman Collection v2.1 и Postman Environment; отдельный запрос можно забрать из приложения командой cURL. Импорт создаёт коллекцию с вложенной структурой и запросами прямо в текущем рабочем пространстве, экспорт отдаёт файл через системный диалог сохранения. Обратной операции для cURL нет: команду можно скопировать, но не вставить в приложение.

Импорт коллекции#

Кнопка импорта живёт в панели инструментов над деревом коллекций — она кладёт результат в корень рабочего пространства. Пункт Import Postman Collection в контекстном меню коллекции делает то же самое, но вкладывает импортированное внутрь неё. Выбирается файл .json, после импорта всплывает уведомление с числом созданных коллекций и запросов.

Tetiva
v0.17.0
Контекстное меню коллекции в Tetiva с пунктами Import Postman Collection и Export as PostmanКонтекстное меню коллекции в Tetiva с пунктами Import Postman Collection и Export as Postman
Импорт из контекстного меню кладёт разобранное дерево внутрь выбранной коллекции

Схема проверяется: файл должен быть Collection v2.1. Экспорт v2.0 или v1 будет отклонён с просьбой переэкспортировать коллекцию из Postman в v2.1.

Что переносится#

Из PostmanВ Tetiva
Коллекция: имя, описание, authКоллекция верхнего уровня с теми же полями
Папки любой вложенностиВложенные коллекции
Запрос: имя, метод, URLЗапрос HTTP; неизвестный метод становится GET
Заголовки, в том числе с disabled: trueЗаголовки с выключенным флажком
raw + язык jsonТело JSON
raw + язык xml или htmlТело XML
raw с другим языком или без негоТело Raw
formdataФорма: ключ, значение, тип (text/file), флажок включения
graphqlЗапрос GraphQL: query, переменные, метод POST
Auth bearer, basic, apikey — на коллекции, папке или запросеСоответствующий тип авторизации

Query-параметры приезжают внутри URL; вкладка Params разбирает их из строки, так что таблица параметров заполняется сама.

Что не переносится:

  • pre-request и test-скрипты — блоки event игнорируются на импорте и не пишутся на экспорте;
  • переменные коллекции — заведите вместо них окружение;
  • описания отдельных запросов, сохранённые примеры ответов, моки и мониторы;
  • тела urlencoded и file — эти режимы Postman приезжают как Raw с пустым телом;
  • типы авторизации кроме Bearer, Basic и API Key — они станут None. Что есть в приложении, перечислено на странице Авторизация.

Импорт окружения#

Окружения импортируются отдельным файлом из окна Environments. Имя окружения берётся из поля name внутри JSON, а не из имени файла — с пустым name импорт завершается ошибкой; переменные приходят из массива values, а запись с type: "secret" становится секретной переменной. Флажок enabled из Postman не читается — все переменные приходят включёнными.

Экспорт#

Export as Postman в контекстном меню коллекции собирает файл для всего поддерева: сама коллекция, вложенные коллекции, запросы, заголовки, тела и авторизация. Системный диалог предложит имя вида Имя коллекции.postman_collection.json. У окружения есть свой пункт экспорта в окне Environments — файл Имя.postman_environment.json, секретные переменные помечаются типом secret.

Границы формата стоит держать в голове: v2.1 описывает HTTP-запрос, поэтому gRPC и WebSocket в него не укладываются, скрипты не пишутся, а тело типа binary — ссылка на файл на диске — в файл не попадает. Для переноса всей работы между машинами используйте синхронизацию, а не экспорт.

Copy as cURL#

Рядом с кнопкой Send есть стрелка, под ней — единственный пункт Copy as cURL. Команда собирается тем же конвейером, что и реальная отправка, поэтому в буфере оказывается то, что ушло бы на сервер:

  • переменные {{var}} уже подставлены;
  • заголовки отсортированы, многозначные повторяются несколькими -H;
  • cookie рабочего пространства для этого адреса добавляются флагом -b;
  • форма превращается в -F@путь для файлов) или -d, тело binary — в --data-binary @путь;
  • pre-скрипт выполняется в режиме dry-run: его заголовки и переменные видны в команде, но в базу не сохраняются и записи в истории не создают.

Пункт работает только для HTTP. Для gRPC, GraphQL и WebSocket приложение вернёт ошибку — этих протоколов cURL не покрывает. Экспорта в другие языки и клиентские библиотеки нет.

Полный маршрут переезда с Postman, включая совместимость скриптов и соответствие понятий, разобран на странице Переход с Postman.

обновлено