
stoplight/prismPrism 是一套用于 API 模拟和契约测试的工具包,支持 OpenAPI v2(原 Swagger)和 OpenAPI v3.x。它能从 API 规范文档生成逼真的模拟服务器,提供契约测试功能,并支持多种 API 规范格式,帮助开发者在 API 开发周期早期进行测试和验证。
bashdocker pull stoplight/prism
使用本地 OpenAPI 规范文件启动模拟服务器:
bash# 挂载当前目录并映射端口,启动模拟服务器 docker run --rm -v $(pwd):/app -p 4010:4010 stoplight/prism mock /app/openapi.yaml
参数说明:
-v $(pwd):/app:将本地当前目录挂载到容器内 /app 目录,使容器可访问规范文件-p 4010:4010:映射容器 4010 端口到主机,默认模拟服务器监听 4010 端口mock /app/openapi.yaml:指定模拟模式及容器内规范文件路径启动后可通过 http://localhost:4010 访问模拟服务器,具体端点可查看启动日志中的 URL 列表。
将请求代理到实际 API 服务器并验证合规性:
bash# 启动验证代理,转发请求到目标服务器并验证 docker run --rm -v $(pwd):/app -p 4010:4010 stoplight/prism proxy /app/openapi.yaml [***]
参数说明:
proxy:指定代理模式,后接规范文件路径和目标 API 服务器 URLhttp://localhost:4010 的请求将被转发至 [***],并根据规范验证请求合法性| 参数 | 说明 | 示例 |
|---|---|---|
-h, --host | 指定监听主机地址(Docker 中建议用 0.0.0.0) | mock -h 0.0.0.0 /app/spec.yaml |
-p, --port | 自定义监听端口 | mock -p 8080 /app/spec.yaml |
--debug | 启用调试模式,输出详细请求处理日志 | mock --debug /app/spec.yaml |
Prism 默认监听 localhost(127.0.0.1),Docker 环境下需指定 -h 0.0.0.0 允许外部访问:
bashdocker run --rm -v $(pwd):/app -p 4010:4010 stoplight/prism mock -h 0.0.0.0 /app/spec.yaml
OpenAPI v2.0 的 basePath 已合并到 v3.0 的 server.url。Prism 将 OAS2 的 host + basePath 视为完整基础 URL,请求无需重复包含 basePath。例如规范中 basePath: /api/v1 且路径定义为 /users,直接请求 http://localhost:4010/users 即可,无需添加 /api/v1 前缀。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务