工具
har-to-openapi:从 HAR 抓包推断 OpenAPI 文档
TypeScript 库及命令行工具,可根据 HTTP 流量的 HAR 抓包记录推断 OpenAPI 3.0 或 3.1 文档,大致基于 har2openapi 改写。请求按域名分别生成文档,可选择把路径中的 ID 转为参数,根据观测值推断查询参数、表单和 JSON 请求体的结构,并把多份抓包合并到相同的操作中。可选设置还能提取可复用的组件模式、保留多个经脱敏的示例、仅在所有样本都包含某字段时才将其标为必填、附加逐字段的观测计数作为依据,并应用 OpenAPI Overlay,使手工补充的名称和修正在重新生成后得以保留。
使用条件与局限
- 审阅对象为 main 分支 2026-09-07 的提交 432e096,已标记为 v3.0.1,并于同日发布到 npm;早一天发布的 v3.0.0 新增了抓包合并、可复用模式、Overlay、脱敏、转换报告及必填性依据等功能。需要 Node.js 22.19.0+;可从 npm 作为库安装,或以 har-to-openapi 命令运行。CI 在 Linux、macOS 和 Windows 上使用 Node 24 及最新版 Node 进行测试。
- 输入为使用者自行录制的一个或多个 HAR 文件,以及可选的 JSON 或 YAML 配置文件和 Overlay 文件。未使用 --multi-spec 时,命令行只返回第一个域名的文档。--validate 和 --strict 会在本地检查结果,转换报告会列出计数,以及被过滤条目、解析失败和模式回退等诊断信息。
- README 指出,观测结果只反映有限的抓包;某字段在每份抓包中都出现,并不代表 API 契约要求它,因此应向 API 所有者确认必填要求,并把修正记录在 Overlay 中。抓包中未出现的端点、参数和响应不会出现在文档里,默认的必填性设置沿用早先的 legacy 行为。
- 除非关闭示例或用脱敏列表加以遮盖,生成的文档会把抓到的值复制为示例;README 把脱敏视为分享前的步骤,所审阅的提交还修补了更多脱敏遗漏。只应转换有权抓取和分析的流量。
- 采用 MIT 许可。本次未安装,也未转换任何抓包。
关于此条目
- 类型
- 工具
- 类别
- 网站分析工具
- 关联
- 基础工具
- 目标
- 网站
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · jonluca/har-to-openapi · 修订 432e096
- package.json GitHub · jonluca/har-to-openapi · 修订 432e096
- src/config.ts GitHub · jonluca/har-to-openapi · 修订 432e096
- .github/workflows/test.yml GitHub · jonluca/har-to-openapi · 修订 432e096
- LICENSE GitHub · jonluca/har-to-openapi · 修订 432e096
- https://github.com/jonluca/har-to-openapi/releases/tag/v3.0.1
- https://github.com/jonluca/har-to-openapi/releases/tag/v3.0.0
- https://www.npmjs.com/package/har-to-openapi/v/3.0.1