用途:从现有 API 规格或文档快速搭建 mockstar mock 后端,适合为第三方 API 做本地开发替身、依据 OpenAPI 规格构建测试桩、从真实流量 HAR 生成夹具,或从文字 API 文档生成桩。支持一次混合多种输入类型,统一归一化为一份 Endpoint Inventory 后再生成。核心约束是不虚构端点:每个端点必须能追溯到已获取或提供的来源,仅凭上下文推断的行为会标记 confidence: "inferred" 并在覆盖报告中提示。
支持输入:OpenAPI 3.x(JSON/YAML)、Postman v2.1、HAR 1.2、curl 命令文件、GraphQL SDL/内省、散文文档(Markdown、PDF、DOCX 或 URL)。PDF/DOCX 等二进制先用 assets/extract_text.py 提取文本;URL 需先用 curl -L 或 WebFetch 取回内容,不能直接把 URL 交给该脚本(会以退出码 3 失败)。
使用方式(概要):前置需 bunx @dhaneshpurohit/mockstar 可用(注意必须用作用域包名,裸 bunx mockstar 指向无关项目),另需 uv 与 curl,Docker 模式下需可达 Docker 守护进程与 ghcr.io/dhanesh/mockstar 镜像。流程为:先做兼容性预检(确定 local/docker 运行时、检测版本、验证 CLI 表面)、输入分类与转换、抽取并合并为单一端点清单、生成配置、执行 enhance、最后启动服务并冒烟测试每条路由。
关键命令与选项:导入可用 bunx @dhaneshpurohit/mockstar import <spec-file> <out>/mocks --tenant=<tenant>(--tenant 需用等号形式);增强用 bunx @dhaneshpurohit/mockstar enhance;--fidelity full|static 控制是否生成场景、动态处理器与 webhook;--no-verify 跳过启动验证(仅限 CI 预检);--deterministic 关闭随机 Faker 值;--max-endpoints N 限制清单数量并记录被丢弃端点;--runtime auto|local|docker 与 --image <ref> 选择运行方式。
限制:不配置 mockstar HTTPS 代理模式;不实现原生 GraphQL 服务器语义(GraphQL 被建模为单个 POST /graphql,用 scenarios[].when.body 按 operationName 路由),如需订阅、schema 拼接等应使用专用 GraphQL 工具链;不面向 MSW、Prism、WireMock、json-server。webhook 签名相关字段仅在 mockstar ≥ 0.3.0 可用。此外,配置要求 mockstar ≥ 0.2.2,且输入规格、HAR 与文档均只读,不修改。