
outofcoffee/imposter-openapiImposter 是一个可靠、可编写脚本且可扩展的模拟服务器,支持通用 REST API、OpenAPI(即 Swagger)规范、Salesforce 和 HBase API。支持 JavaScript 或 Groovy/Java 脚本,可通过静态文件提供模拟响应,或使用脚本自定义行为(如状态码、响应文件等)。高级用户还可使用任意 JVM 语言编写自定义插件。
创建配置文件 petstore-config.yaml:
yaml# petstore-config.yaml --- plugin: openapi specFile: petstore.yaml
petstore.yaml 内容:
yamlswagger: "2.0" info: version: "1.0.0" title: "Swagger Petstore" consumes: - "application/json" produces: - "application/json" paths: /pets: get: description: "返回系统中的所有宠物" produces: - "application/json" responses: "200": description: "宠物列表" schema: type: "array" items: $ref: "#/definitions/Pet" examples: application/json: |- [ { "id": 101, "name": "Cat" }, { "id": 102, "name": "Dog" } ] definitions: Pet: type: "object" required: - "id" - "name" properties: id: type: "integer" format: "int64" name: type: "string"
假设配置文件位于 ./docs/examples/openapi/simple 目录,执行以下命令启动模拟服务器:
bashdocker run --rm -ti -p 8080:8080 \ -v $(pwd)/docs/examples/openapi/simple:/opt/imposter/config \ outofcoffee/imposter-openapi
curl http://localhost:8080/pets,将返回规范中定义的宠物列表示例。plugin: 指定使用的插件(如 openapi)specFile: OpenAPI 规范文件路径validation.request: 是否启用请求验证(true/false)通过配置启用请求验证,确保请求符合 OpenAPI 规范:
yaml# validating-request-config.yaml --- plugin: "openapi" specFile: "example-spec.yaml" validation: request: true
启用后,无效请求将返回 HTTP 400 状态及验证错误详情(如缺失必填头信息、请求体不匹配 schema 等)。
通过 resources 配置自定义特定路径和方法的响应状态码:
yaml# override-status-code-config.yaml --- plugin: "openapi" specFile: "spec-with-multiple-status-codes.yaml" resources: - path: "/pets" method: "post" response: statusCode: 201 - path: "/pets/:petId" method: "put" response: statusCode: 202
使用 JavaScript 或 Groovy 脚本控制响应行为,例如指定返回的示例名称、响应文件或内容:
yaml# scripted-openapi-config.yaml --- plugin: openapi specFile: petstore.yaml response: scriptFile: example.groovy
groovy// 返回指定名称的示例 respond().withExampleName('dogExample') // 返回静态文件内容 respond().withFile('some-file.json') // 返回自定义内容 respond().withContent('{ "foo": "bar" }')
完整文档请参见:[***]
更多示例:


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务