我在Swagger文件中有一个API参考 . 我想创建一个非常简单的模拟服务器,以便在我调用时:
mymockurl.com/users 它将返回一个预定义的json(无需连接到数据库) .
mymockurl.com/users
最简单的方法是什么?我不是后躯 .
SwaggerHub为OpenAPI 2.0和3.0规范提供mock server . 免费和付费计划都支持模拟 .
要使用模拟服务器,请将您的规范导入SwaggerHub并启用"API Auto Mocking" . 模拟响应可以是JSON,YAML和XML,并且是根据您的响应模式以及模式中定义的 example , default 和 enum 值生成的 .
example
default
enum
Disclosure :我为制作SwaggerHub的公司工作 .
从没有代码的OpenAPI(fka.Swagger)规范创建简单模拟的简单方法是使用工具调用prism,可在http://github.com/stoplightio/prism获得
这个命令行就是您所需要的:
./prism run --mock --list --spec <your swagger spec file>
模拟服务器将根据OpenAPI规范返回动态响应 . 如果规范中提供了示例,prism将返回它们,否则它将根据规范生成虚拟数据 .
鉴于OpenAPI / Swagger规范,您可以使用Swagger Codegen在不同的服务器框架中生成服务器存根(例如Java Spring.PHP Slim,Ruby on Rails5等) .
以下是相关文档:
https://github.com/swagger-api/swagger-codegen/wiki/Server-stub-generator-HOWTO
更新:在2018年5月,Swagger Codegen的大约50名顶级贡献者决定分叉该项目以创建一个名为OpenAPI Generator的社区驱动版本 . 有关fork的原因,请参阅Q&A .
在 Docker 环境中设置非常简单,并提供了一个Swagger UI来与您的模拟API一起玩 .
config/petstore.yaml
swagger: "2.0" info: version: 1.0.0 title: Swagger Petstore . . .
您可以从here复制示例swagger规范 .
config/openapi-plugin-petstore-config.json
{ "plugin": "com.gatehill.imposter.plugin.openapi.OpenApiPluginImpl", "specFile": "petstore.yaml" }
配置文件的名称必须以 -config.json 结尾 .
-config.json
确保将shell放在 config 的父目录中并运行
config
docker run -ti -p 8443:8443 \ -v $(pwd)/config:/opt/imposter/config \ outofcoffee/imposter-openapi
这是来自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
我的docker组成了Swagger编辑器,Swagger UI和Swagger模拟api服务器来更轻松地处理它们 . 看看这个 . 这里有一个示例swagger规范,因此编辑器,UI和模拟API服务器将从一开始就没有任何配置运行 . 您需要做的就是编辑swagger规范,保存swagger.json和swagger.yaml,然后重启docker .
swagger-all-in-one-docker-compose
openapi-mock是swagger-node-runner和sway的CLI包装器,专门用于从openapi / swagger规范文件启动模拟服务器 .
MockLab现在支持从导入的Swagger定义自动生成模拟API . 您还可以将其设置为Swaggerhub中收到的webhook,以便在每次保存/发布时更新:
https://www.mocklab.io/blog/mocklab-now-supports-swagger-and-swaggerhub/
8 回答
SwaggerHub为OpenAPI 2.0和3.0规范提供mock server . 免费和付费计划都支持模拟 .
要使用模拟服务器,请将您的规范导入SwaggerHub并启用"API Auto Mocking" . 模拟响应可以是JSON,YAML和XML,并且是根据您的响应模式以及模式中定义的
example
,default
和enum
值生成的 .Disclosure :我为制作SwaggerHub的公司工作 .
从没有代码的OpenAPI(fka.Swagger)规范创建简单模拟的简单方法是使用工具调用prism,可在http://github.com/stoplightio/prism获得
这个命令行就是您所需要的:
模拟服务器将根据OpenAPI规范返回动态响应 . 如果规范中提供了示例,prism将返回它们,否则它将根据规范生成虚拟数据 .
鉴于OpenAPI / Swagger规范,您可以使用Swagger Codegen在不同的服务器框架中生成服务器存根(例如Java Spring.PHP Slim,Ruby on Rails5等) .
以下是相关文档:
https://github.com/swagger-api/swagger-codegen/wiki/Server-stub-generator-HOWTO
更新:在2018年5月,Swagger Codegen的大约50名顶级贡献者决定分叉该项目以创建一个名为OpenAPI Generator的社区驱动版本 . 有关fork的原因,请参阅Q&A .
Imposter是一个可编写脚本的多用途模拟服务器 .
在 Docker 环境中设置非常简单,并提供了一个Swagger UI来与您的模拟API一起玩 .
让我们看一个示例设置
config/petstore.yaml
的文件中准备好招摇配置您可以从here复制示例swagger规范 .
config/openapi-plugin-petstore-config.json
中为Imposter创建配置文件配置文件的名称必须以
-config.json
结尾 .确保将shell放在
config
的父目录中并运行这是来自swagger yaml的模拟api服务器的docker container .
这是内部使用swagger-mock-api
我的docker组成了Swagger编辑器,Swagger UI和Swagger模拟api服务器来更轻松地处理它们 . 看看这个 . 这里有一个示例swagger规范,因此编辑器,UI和模拟API服务器将从一开始就没有任何配置运行 . 您需要做的就是编辑swagger规范,保存swagger.json和swagger.yaml,然后重启docker .
swagger-all-in-one-docker-compose
openapi-mock是swagger-node-runner和sway的CLI包装器,专门用于从openapi / swagger规范文件启动模拟服务器 .
MockLab现在支持从导入的Swagger定义自动生成模拟API . 您还可以将其设置为Swaggerhub中收到的webhook,以便在每次保存/发布时更新:
https://www.mocklab.io/blog/mocklab-now-supports-swagger-and-swaggerhub/