Swagger mock server
У меня есть ссылка API в файле Swagger. Я хочу создать очень простой mock-сервер, так что, когда я вызываю eg.:
mymockurl.com/users
он вернет предопределенный json (нет необходимости подключаться к базе данных).
Какой самый простой способ сделать это? Я не сторонний парень.
Ответы
Ответ 1
SwaggerHub предоставляет mock сервер для спецификаций OpenAPI 2.0 и 3.0. Mocking поддерживается как на бесплатных, так и на платных планах.
Чтобы использовать макетный сервер, импортируйте свою спецификацию в SwaggerHub и включите "API Auto Mocking". Mock-ответы могут быть JSON, YAML и XML и создаются на основе ваших схем ответа и значений example
, default
и enum
, определенных в схемах.
Отказ от ответственности: я работаю в компании, которая делает SwaggerHub.
Ответ 2
Простым способом создания простого макета из спецификации Open API (fka. Swagger) без кода является использование вызова инструмента prism
, доступного по адресу http://stoplight.io/platform/prism/
Эта командная строка все, что вам нужно:
./prism run --mock --list --spec <your swagger spec file>
Макетный сервер вернет динамический ответ на основе спецификации swagger.
Если примеры представлены в спецификации, призма вернет их, если не будет генерировать фиктивные данные на основе спецификации.
Ответ 3
Imposter является сценарием, многоцелевым макетным сервером.
Очень простая настройка в среде Docker и предоставляет пользовательский интерфейс Swagger, чтобы играть с вашим mock api.
Посмотрите пример установки
-
Создайте конфигурацию swagger в файле в папке config/petstore.yaml
swagger: "2.0"
info:
version: 1.0.0
title: Swagger Petstore
.
.
.
Вы можете скопировать спецификацию примера swagger из здесь.
-
Создайте файл конфигурации для Imposer в config/openapi-plugin-petstore-config.json
{
"plugin": "com.gatehill.imposter.plugin.openapi.OpenApiPluginImpl",
"specFile": "petstore.yaml"
}
Название файла конфигурации должно заканчиваться на -config.json
.
-
Запуск Imposer с Docker
Убедитесь, что ваша оболочка помещена в родительский каталог config
и запустите
docker run -ti -p 8443:8443 \
-v $(pwd)/config:/opt/imposter/config \
outofcoffee/imposter-openapi
-
Откройте http://localhost:8443/_spec/, чтобы играть с вашим Mock-сервером и интерфейсом Swagger
![Imposer Mock API]()
Ответ 4
Учитывая спецификацию OpenAPI/Swagger, вы можете использовать Swagger Codegen для создания заглушки сервера в разных серверных средах (например, Java Spring). PHP Slim, Ruby on Rails5 и т.д.).
Вот соответствующая документация:
https://github.com/swagger-api/swagger-codegen/wiki/Server-stub-generator-HOWTO
Ответ 5
Вот контейнер докеров для mock api-сервера от swagger yaml.
docker run -i \
-p 8000:8000 \
-v /path/to/file.yaml:/data/swagger.yaml \
-t palo/swagger-api-mock:latest
Это внутренне использует swagger-mock-api