首页 文章

Swagger模拟服务器

提问于
浏览
41

我在Swagger文件中有一个API参考 . 我想创建一个非常简单的模拟服务器,以便在我调用时:

mymockurl.com/users 它将返回一个预定义的json(无需连接到数据库) .

最简单的方法是什么?我不是后躯 .

8 回答

  • 0

    SwaggerHub为OpenAPI 2.0和3.0规范提供mock server . 免费和付费计划都支持模拟 .

    要使用模拟服务器,请将您的规范导入SwaggerHub并启用"API Auto Mocking" . 模拟响应可以是JSON,YAML和XML,并且是根据您的响应模式以及模式中定义的 exampledefaultenum 值生成的 .

    Disclosure :我为制作SwaggerHub的公司工作 .

  • 1

    从没有代码的OpenAPI(fka.Swagger)规范创建简单模拟的简单方法是使用工具调用prism,可在http://github.com/stoplightio/prism获得

    这个命令行就是您所需要的:

    ./prism run --mock --list --spec <your swagger spec file>
    

    模拟服务器将根据OpenAPI规范返回动态响应 . 如果规范中提供了示例,prism将返回它们,否则它将根据规范生成虚拟数据 .

  • 0

    鉴于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 .

  • 3

    Imposter是一个可编写脚本的多用途模拟服务器 .

    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 中为Imposter创建配置文件
    {
      "plugin": "com.gatehill.imposter.plugin.openapi.OpenApiPluginImpl",
      "specFile": "petstore.yaml"
    }
    

    配置文件的名称必须以 -config.json 结尾 .

    • 使用Docker运行 Imposter

    确保将shell放在 config 的父目录中并运行

    docker run -ti -p 8443:8443 \
    -v $(pwd)/config:/opt/imposter/config \
    outofcoffee/imposter-openapi
    

    Imposter Mock API

  • 16

    这是来自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

  • 28

    我的docker组成了Swagger编辑器,Swagger UI和Swagger模拟api服务器来更轻松地处理它们 . 看看这个 . 这里有一个示例swagger规范,因此编辑器,UI和模拟API服务器将从一开始就没有任何配置运行 . 您需要做的就是编辑swagger规范,保存swagger.json和swagger.yaml,然后重启docker .

    swagger-all-in-one-docker-compose

  • 11

    openapi-mockswagger-node-runnersway的CLI包装器,专门用于从openapi / swagger规范文件启动模拟服务器 .

  • 8

    MockLab现在支持从导入的Swagger定义自动生成模拟API . 您还可以将其设置为Swaggerhub中收到的webhook,以便在每次保存/发布时更新:

    https://www.mocklab.io/blog/mocklab-now-supports-swagger-and-swaggerhub/

相关问题