Repolode
stoplightio

stoplightio/prism

将 OpenAPI 与 Postman Collection 文件转为模拟 API 服务器,并支持请求校验与校验代理的命令行工具。

可替代:Postman

Star
5,052
Fork
414
未关闭 Issue
147
最近提交
10天前

这是什么?

Prism 是一组用于 API 模拟(Mock)和契约测试的工具包,支持 OpenAPI v2、OpenAPI v3.x 以及 Postman Collection 文件。给定接口描述文件后,它会启动一个 HTTP 服务,返回符合规范结构的响应,前端和客户端团队无需等待后端完成即可开发联调。

同一工具还可以作为校验代理部署在真实 API 前面,将请求流量与接口描述对照,发现实现与契约之间的差异,并支持内容协商和安全校验。通过 `prism mock`、`prism proxy` 等命令行方式运行,要求 Node.js 18.20.1 及以上版本。

数据录制生成 OpenAPI 文档和 Mock 数据持久化目前仍是规划中的功能。

核心功能

  • 01根据 OpenAPI v2、v3.0、v3.1 或 Postman Collection 文件生成模拟 HTTP 服务。
  • 02依据接口描述校验请求与响应。
  • 03作为校验代理部署在真实 API 前,发现与契约不一致的情况。
  • 04支持内容协商与安全校验。
  • 05通过命令行运行,可用于持续集成流程。

适用场景

  • 在后端尚未完成时,前端开发者基于接口描述进行开发。
  • 测试期间检查线上 API 是否仍符合 OpenAPI 契约。
  • 在 CI 流水线中模拟外部 API 依赖。
  • 向相关方演示接口设计,使用贴近真实的示例响应。

快速上手

  1. 1

    使用 npm 全局安装 Prism CLI(需要 Node.js 18.20.1 或更高版本)

    npm install -g @stoplight/prism-cli
  2. 2

    基于 OpenAPI 文档运行模拟服务器

    prism mock https://raw.githack.com/OAI/OpenAPI-Specification/master/examples/v3.0/petstore-expanded.yaml
  3. 3

    或者在现有 API 前运行验证代理

    prism proxy examples/petstore.oas2.yaml https://petstore.swagger.io/v2

使用前须知

  • 需要 Node.js 18.20.1 或更高版本,Node 18.x 需至少 18.16。

标签

常见问题

prism 是什么?
将 OpenAPI 与 Postman Collection 文件转为模拟 API 服务器,并支持请求校验与校验代理的命令行工具。 Prism 是一组用于 API 模拟(Mock)和契约测试的工具包,支持 OpenAPI v2、OpenAPI v3.x 以及 Postman Collection 文件。给定接口描述文件后,它会启动一个 HTTP 服务,返回符合规范结构的响应,前端和客户端团队无需等待后端完成即可开发联调。
prism 可以免费使用吗?用的什么许可证?
prism 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
prism 还在维护吗?
活跃维护中。prism 最近一次提交是在 2026年10月12日。
prism 适合用来做什么?
在后端尚未完成时,前端开发者基于接口描述进行开发。 测试期间检查线上 API 是否仍符合 OpenAPI 契约。 在 CI 流水线中模拟外部 API 依赖。 向相关方演示接口设计,使用贴近真实的示例响应。
prism 怎么安装和运行?
使用 npm 全局安装 Prism CLI(需要 Node.js 18.20.1 或更高版本): npm install -g @stoplight/prism-cli 基于 OpenAPI 文档运行模拟服务器: prism mock https://raw.githack.com/OAI/OpenAPI-Specification/master/examples/v3.0/petstore-expanded.yaml 或者在现有 API 前运行验证代理: prism proxy examples/petstore.oas2.yaml https://petstore.swagger.io/v2
在哪里获取 prism?
源代码和安装说明在 GitHub 上:https://github.com/stoplightio/prism

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目