Запуск макетных серверов Postman на локальном хосте

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

Макет-серверы Postman обеспечивают два основных преимущества:

Устранение зависимостей

Кодирование с использованием mock-серверов устраняет зависимость от доступности нижележащих API. Вместо этого разработчики могут создать конфигурацию серверов-макетов, указать примеры, которые они хотят получить в ответ, и реализовать свой код для обработки этих сценариев использования.

Аналогичным образом, тестировщики API разблокированы, поскольку они могут писать и проверять свои тесты API на макетных серверах и переходить к использованию реальных конечных точек только после того, как разработчики развернут стабильный (пригодный для тестирования) код.

Совместная работа над ожидаемым состоянием

Макетные серверы — это отличный способ для совместной работы команд над ожидаемыми входами и выходами API.

Нет ничего лучше, чем нажать на конечную точку и увидеть, что именно она вернет. Это переходит на новый уровень, когда разработчики, тестировщики и потребители API получают доступ к одному и тому же макетному серверу. Все видят одно и то же ожидаемое состояние, и у всех есть общая цель.

В целом, это отличные возможности, которые должны быть частью жизненного цикла любой современной разработки.

Так в чем же тогда проблема?

Одна из проблем заключается в том, что даже после устранения зависимости от нижестоящего поставщика API вы все равно остаетесь в зависимости от прихоти Postman.

Макетные серверы Postman работают в облаке Postman (AWS), поэтому если вы работаете в среде, где доступ к внешнему интернету затруднен, или вам просто нужно запустить свои макетные серверы ближе к клиентскому коду, Postman Local Mock Server — это решение.

Postman Local Mock Server

Это простой пакет javascript, который вы можете импортировать в свою кодовую базу для запуска коллекции в качестве локального сервера.

Выберите порт, на котором он будет работать, предоставьте JSON-файл коллекции, и пакет postman-local-mock-server запустит ее для вас.

Начало работы

Шаг 1
Создайте коллекцию из Postman (или выберите коллекцию из Public API Network).

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

Макетный сервер будет использовать комбинацию путей и заголовков, чтобы определить, какой пример ответа лучше всего вернуть, но вы также можете контролировать это с помощью некоторых параметров.

Шаг 2
Создайте новый проект Javascript

mkdir local-collection && cd local-collection
npm init -y
Войдите в полноэкранный режим Выйти из полноэкранного режима

Шаг 3
Установите зависимость из npm

npm i @jordanwalsh23/postman-local-mock-server
Войдите в полноэкранный режим Выйти из полноэкранного режима

Шаг 4
Отредактируйте файл index.js, чтобы запустить вашу коллекцию

const PostmanLocalMockServer = require('@jordanwalsh23/postman-local-mock-server');

//Create the collection object.
let collection = JSON.parse(fs.readFileSync('./my-collection.json', 'utf8'));

//Create a new server
let server = new PostmanLocalMockServer(3555, collection);

//Start the server
server.start();
Войдите в полноэкранный режим Выйти из полноэкранного режима

Шаг 5
Запустите сервер, запустив скрипт.

node index.js
Войти в полноэкранный режим Выйти из полноэкранного режима

Шаг 6
Отправьте несколько запросов

Вы можете использовать любой API-клиент (даже #postman) или код вашего приложения, чтобы обратиться к конечным точкам на http://localhost:3555.

Сервер автоматически ответит вам теми насмешливыми примерами, которые вы создали в своей коллекции.

Как мне выбрать ответ, который я хочу получить?

Существует 4 необязательных заголовка, которые вы можете указать в запросах к локальному mock-серверу, чтобы заставить его отвечать так, как вы хотите.

x-mock-response-name — Отправьте этот заголовок с именем конкретного ответа, который вы хотите получить.

x-mock-response-code — Отправьте этот параметр с кодом состояния, который вы хотите получить от API. Если существует подходящий пример с таким кодом состояния, он будет возвращен.

x-mock-response-id — Отправьте это значение с ID конкретного примера ответа, который вы хотите вернуть. Этот идентификатор является внутренним идентификатором Postman, поэтому вам нужно посмотреть коллекцию или использовать API Postman, чтобы узнать его.

x-mock-match-request-body — (булево, по умолчанию: false) Если вы используете запросы POST/PUT/PATCH, которые имеют тело, вы можете использовать следующий заголовок, чтобы заставить локальный макет-сервер Postman соответствовать телу одного из ваших примеров ответов.

Postman поддерживает динамические данные ответа в макетах, так ли это?

Да! Если вы используете некоторые поля библиотеки faker, которые поддерживает Postman, они также будут разрешены в локальном макетном сервере Postman.

Что насчет коллекции, окружения и глобальных переменных?

В настоящее время библиотека не поддерживает переменные. Возможно, в будущем релизе, если это будет необходимо.

Выполняет ли она предварительные запросы и тестовые скрипты?

Нет. К сожалению, пока нет. Если это необходимо, пожалуйста, поднимите вопрос в репозитории.

Отзывы/комментарии/вопросы

Пожалуйста, не стесняйтесь создать проблему в репозитории, если у вас есть какие-либо замечания.

Спасибо!

Оцените статью
devanswers.ru
Добавить комментарий