用途:当需要把多个 OpenAPI 规范合并为一个统一规范时使用,触发场景包括合并微服务规范、合并版本化规范文件、合并公开与内部 API 规范,以及用户提到合并规范、组合规范、多个 OpenAPI 文件等。
主要能力:通过 speakeasy merge 将两份或更多规范合并为一份。输入为两个及以上 OpenAPI 规范,每个用 -s 指定;输出为合并后的 OpenAPI 规范,用 -o 指定路径。
使用方式: speakeasy merge -s <spec1> -s <spec2> -o <output-path>
示例: 合并两份规范:speakeasy merge -s ./api/users.yaml -s ./api/orders.yaml -o combined.yaml 合并多份规范(每个用 -s 指定):speakeasy merge -s ./specs/auth.yaml -s ./specs/users.yaml -s ./specs/orders.yaml -o combined.yaml
冲突处理:出现冲突时,对于重复路径,靠后的规范会覆盖靠前的规范;模式冲突可能需要手动解决;应检查合并结果的正确性。
故障排查:模式冲突多因模式名重复,可在合并前重命名;缺失引用多因跨规范 $ref,需确保所有被引用的模式都已包含;重复路径多因同一端点在多个规范中出现,可删除重复项或使用不同的基础路径。
适用场景与限制:适合微服务各服务独立规范、API 版本化多规范文件、公开与内部规范合并等;限制方面,冲突时靠后规范覆盖靠前规范,模式冲突需手动处理,跨规范引用须提前补齐,相关资料暂未提供价格、平台支持范围及效果保证等信息。