Swagger/OpenAPI 模拟服务器
Swagger/OpenAPI mock server
我在 Swagger 文件中有一个 API 引用。我想创建一个非常简单的模拟服务器,这样当我调用例如:
mymockurl.com/users
它将 return 一个预定义的 JSON(不需要连接到数据库)。
最简单的方法是什么?我不是后端人员。
鉴于 OpenAPI/Swagger 规范,您可以使用 Swagger Codegen 在不同的服务器框架中生成服务器存根(例如 Java Spring。PHP Slim, Ruby 在 Rails5 等上)。
相关文档如下:
https://github.com/swagger-api/swagger-codegen/wiki/Server-stub-generator-HOWTO
更新:2018 年 5 月,Swagger Codegen 的大约 50 位顶级贡献者决定分叉该项目以创建一个名为 OpenAPI Generator. Please refer to the Q&A 的社区驱动版本,原因是分叉背后的原因。
在没有代码的情况下从 OpenAPI (fka Swagger) 规范创建简单模拟的一种简单方法是使用用 Typescript 编写的工具调用 prism available at http://github.com/stoplightio/prism。
这个命令行就是你所需要的:
./prism run --mock --list --spec <your swagger spec file>
模拟服务器将 return 基于 OpenAPI 规范的动态响应。
如果规范中提供了示例,prism 将 return 它们,否则它将根据规范生成虚拟数据。
编辑(2020 年 8 月):
命令在最新版本中已更改。以下将做:
prism mock <your spec file>
它也接受 swagger 和 postman 文档。
Imposter 是用 Java.
编写的 可编写脚本的多用途模拟服务器
在 Docker 环境中非常容易设置,并提供 Swagger UI模拟 api.
让我们看一个示例设置
在文件夹 config/petstore.yaml
的文件中准备好 swagger 配置
swagger: "2.0"
info:
version: 1.0.0
title: Swagger Petstore
.
.
.
您可以从 here 复制示例 swagger 规范。
在 config/openapi-plugin-petstore-config.json
中为 Imposter 创建一个配置文件
{
"plugin": "com.gatehill.imposter.plugin.openapi.OpenApiPluginImpl",
"specFile": "petstore.yaml"
}
配置文件的名称必须以 -config.json
结尾。
运行 冒名顶替者 Docker
确保您的 shell 位于 config
和 运行
的父目录中
docker run -ti -p 8443:8443 \
-v $(pwd)/config:/opt/imposter/config \
outofcoffee/imposter-openapi
打开 http://localhost:8443/_spec/ 玩你的模拟服务器和 Swagger UI
这是来自 swagger yaml 的模拟 api 服务器的 docker container。
docker run -i \
-p 8000:8000 \
-v /path/to/file.yaml:/data/swagger.yaml \
-t palo/swagger-api-mock:latest
这是内部使用 swagger-mock-api
SwaggerHub provides a mock server 用于 OpenAPI 2.0 和 3.0 规范。免费和付费计划都支持模拟。
要使用模拟服务器,请将您的规范导入 SwaggerHub 并启用“API Auto Mocking”。模拟响应可以是 JSON、YAML 和 XML,并根据您的响应模式和模式中定义的 example
、default
和 enum
值生成.
披露:我在制造 SwaggerHub 的公司工作。
openapi-mock is a CLI wrapper for swagger-node-runner and sway 专门用于从 openapi/swagger 规范文件启动模拟服务器。
我 docker 编写了 Swagger Editor、Swagger UI 和 Swagger mock api 服务器来更轻松地处理它们。看看这个。
这里有一个示例 swagger 规范,因此编辑器 UI 和模拟 API 服务器将 运行 从一开始就没有任何配置。您需要做的就是编辑 swagger 规范,保存 swagger.json 和 swagger.yaml,然后重新启动 docker.
MockLab 现在支持从导入的 Swagger 定义自动生成模拟 API。您还可以将其设置为在 Swaggerhub 中接收的 webhook,以便它在每个 save/publish:
上更新
https://www.mocklab.io/blog/mocklab-now-supports-swagger-and-swaggerhub/
Mock Server 项目支持根据 Swagger/OpenAPI 规范创建存根。
我自己创建了可以服务器 swagger.json
文件的模拟 api 服务器。如果您安装了 python,则在本地进行设置非常容易。
看看这个:https://github.com/bikcrum/Mock-API-server
只需使用此命令为您的 swagger.json
文件提供服务,该文件将根据 swagger 文件的规范创建 API 个端点。
快速直接
python app.py -s /path/to/swagger.json
扩展选项
usage: app.py [-h] -s SOURCE [-p PORT] [-t {swagger}] [-sc STATUS_CODE] [-r RANDOM_SEED] [-d DEFAULT_VALUE [DEFAULT_VALUE ...]]
[-l LIST_SIZE [LIST_SIZE ...]]
Options for mock responses
Required and optional arguments:
-h, --help show this help message and exit
-s SOURCE, --source SOURCE
(Required) API reference source file path.
-p PORT, --port PORT (Optional,default=5000) Port number the app runs on.
-t {swagger}, --type {swagger}
(Optional,default='swagger') Type of API reference. Currently only supports Swagger.
-sc STATUS_CODE, --status_code STATUS_CODE
(Optional,default=200) Generates responses with status code provided.
-r RANDOM_SEED, --random_seed RANDOM_SEED
(Optional) Generates random responses based on seed value.
-d DEFAULT_VALUE [DEFAULT_VALUE ...], --default_value DEFAULT_VALUE [DEFAULT_VALUE ...]
(Optional) Sets default values in response body. Format key=value.
-l LIST_SIZE [LIST_SIZE ...], --list_size LIST_SIZE [LIST_SIZE ...]
(Optional,default=[2]) Sets default size of list in response body.
最近遇到了Microcks.io,它帮我解决了很多问题。
还发现 Apicur.io 用于 editing/creating swagger 文件。一个值得拥抱的标准。
我在 Swagger 文件中有一个 API 引用。我想创建一个非常简单的模拟服务器,这样当我调用例如:
mymockurl.com/users
它将 return 一个预定义的 JSON(不需要连接到数据库)。
最简单的方法是什么?我不是后端人员。
鉴于 OpenAPI/Swagger 规范,您可以使用 Swagger Codegen 在不同的服务器框架中生成服务器存根(例如 Java Spring。PHP Slim, Ruby 在 Rails5 等上)。
相关文档如下:
https://github.com/swagger-api/swagger-codegen/wiki/Server-stub-generator-HOWTO
更新:2018 年 5 月,Swagger Codegen 的大约 50 位顶级贡献者决定分叉该项目以创建一个名为 OpenAPI Generator. Please refer to the Q&A 的社区驱动版本,原因是分叉背后的原因。
在没有代码的情况下从 OpenAPI (fka Swagger) 规范创建简单模拟的一种简单方法是使用用 Typescript 编写的工具调用 prism available at http://github.com/stoplightio/prism。
这个命令行就是你所需要的:
./prism run --mock --list --spec <your swagger spec file>
模拟服务器将 return 基于 OpenAPI 规范的动态响应。 如果规范中提供了示例,prism 将 return 它们,否则它将根据规范生成虚拟数据。
编辑(2020 年 8 月):
命令在最新版本中已更改。以下将做:
prism mock <your spec file>
它也接受 swagger 和 postman 文档。
Imposter 是用 Java.
编写的 可编写脚本的多用途模拟服务器在 Docker 环境中非常容易设置,并提供 Swagger UI模拟 api.
让我们看一个示例设置
在文件夹
的文件中准备好 swagger 配置config/petstore.yaml
swagger: "2.0" info: version: 1.0.0 title: Swagger Petstore . . .
您可以从 here 复制示例 swagger 规范。
在
中为 Imposter 创建一个配置文件config/openapi-plugin-petstore-config.json
{ "plugin": "com.gatehill.imposter.plugin.openapi.OpenApiPluginImpl", "specFile": "petstore.yaml" }
配置文件的名称必须以
-config.json
结尾。运行 冒名顶替者 Docker
确保您的 shell 位于
的父目录中config
和 运行docker run -ti -p 8443:8443 \ -v $(pwd)/config:/opt/imposter/config \ outofcoffee/imposter-openapi
打开 http://localhost:8443/_spec/ 玩你的模拟服务器和 Swagger UI
这是来自 swagger yaml 的模拟 api 服务器的 docker container。
docker run -i \
-p 8000:8000 \
-v /path/to/file.yaml:/data/swagger.yaml \
-t palo/swagger-api-mock:latest
这是内部使用 swagger-mock-api
SwaggerHub provides a mock server 用于 OpenAPI 2.0 和 3.0 规范。免费和付费计划都支持模拟。
要使用模拟服务器,请将您的规范导入 SwaggerHub 并启用“API Auto Mocking”。模拟响应可以是 JSON、YAML 和 XML,并根据您的响应模式和模式中定义的 example
、default
和 enum
值生成.
披露:我在制造 SwaggerHub 的公司工作。
openapi-mock is a CLI wrapper for swagger-node-runner and sway 专门用于从 openapi/swagger 规范文件启动模拟服务器。
我 docker 编写了 Swagger Editor、Swagger UI 和 Swagger mock api 服务器来更轻松地处理它们。看看这个。 这里有一个示例 swagger 规范,因此编辑器 UI 和模拟 API 服务器将 运行 从一开始就没有任何配置。您需要做的就是编辑 swagger 规范,保存 swagger.json 和 swagger.yaml,然后重新启动 docker.
MockLab 现在支持从导入的 Swagger 定义自动生成模拟 API。您还可以将其设置为在 Swaggerhub 中接收的 webhook,以便它在每个 save/publish:
上更新https://www.mocklab.io/blog/mocklab-now-supports-swagger-and-swaggerhub/
Mock Server 项目支持根据 Swagger/OpenAPI 规范创建存根。
我自己创建了可以服务器 swagger.json
文件的模拟 api 服务器。如果您安装了 python,则在本地进行设置非常容易。
看看这个:https://github.com/bikcrum/Mock-API-server
只需使用此命令为您的 swagger.json
文件提供服务,该文件将根据 swagger 文件的规范创建 API 个端点。
快速直接
python app.py -s /path/to/swagger.json
扩展选项
usage: app.py [-h] -s SOURCE [-p PORT] [-t {swagger}] [-sc STATUS_CODE] [-r RANDOM_SEED] [-d DEFAULT_VALUE [DEFAULT_VALUE ...]]
[-l LIST_SIZE [LIST_SIZE ...]]
Options for mock responses
Required and optional arguments:
-h, --help show this help message and exit
-s SOURCE, --source SOURCE
(Required) API reference source file path.
-p PORT, --port PORT (Optional,default=5000) Port number the app runs on.
-t {swagger}, --type {swagger}
(Optional,default='swagger') Type of API reference. Currently only supports Swagger.
-sc STATUS_CODE, --status_code STATUS_CODE
(Optional,default=200) Generates responses with status code provided.
-r RANDOM_SEED, --random_seed RANDOM_SEED
(Optional) Generates random responses based on seed value.
-d DEFAULT_VALUE [DEFAULT_VALUE ...], --default_value DEFAULT_VALUE [DEFAULT_VALUE ...]
(Optional) Sets default values in response body. Format key=value.
-l LIST_SIZE [LIST_SIZE ...], --list_size LIST_SIZE [LIST_SIZE ...]
(Optional,default=[2]) Sets default size of list in response body.
最近遇到了Microcks.io,它帮我解决了很多问题。 还发现 Apicur.io 用于 editing/creating swagger 文件。一个值得拥抱的标准。