
digicatapult/openapi-mergerAmalgamated OpenAPI Specs 是一款专注于合并和管理 OpenAPI 规范的 Docker 镜像。该镜像旨在解决多团队或多模块 API 开发中规范分散的问题,通过集中处理多个 OpenAPI 规范文件,生成统一的规范输出,简化 API 文档维护、接口测试及服务集成流程。
准备 OpenAPI 规范文件
将分散的 OpenAPI 规范文件(.json 或 .yaml)存放于本地目录(如 /path/to/local/specs)
运行容器
通过 docker run 命令启动容器,挂载本地规范文件目录,并配置必要参数:
bashdocker run -d \ --name amalgamated-openapi \ -v /path/to/local/specs:/specs \ # 挂载本地规范文件目录到容器内/specs -e INPUT_DIR=/specs \ # 指定容器内输入目录(默认:/specs) -e OUTPUT_FILE=/specs/merged.yaml \ # 指定合并后输出文件路径(默认:/specs/merged.yaml) -e OPENAPI_VERSION=3.0 \ # 目标 OpenAPI 版本(支持 2.0/3.0/3.1,默认:3.0) amalgamated-openapi-specs
/path/to/local/specs/merged.yaml)| 环境变量名 | 描述 | 默认值 | 可选值 |
|---|---|---|---|
INPUT_DIR | 容器内 OpenAPI 规范文件目录 | /specs | 容器内任意可访问路径 |
OUTPUT_FILE | 合并后输出文件路径 | /specs/merged.yaml | 容器内任意可写路径 |
OPENAPI_VERSION | 目标 OpenAPI 版本 | 3.0 | 2.0, 3.0, 3.1 |
MERGE_STRATEGY | 文件合并策略 | deep_merge | deep_merge, override |
LOG_LEVEL | 日志级别 | info | debug, info, warn |
deep_merge:深度合并,合并所有文件中的路径、组件、参数等,冲突时保留最后读取的文件内容override:覆盖合并,以最后读取的文件内容完全覆盖同名节点(适用于主文件+补充文件场景)创建 docker-compose.yml 文件:
yamlversion: '3' services: openapi-merger: image: amalgamated-openapi-specs volumes: - ./local-specs:/specs environment: - INPUT_DIR=/specs - OUTPUT_FILE=/specs/merged.json - OPENAPI_VERSION=3.1 - MERGE_STRATEGY=deep_merge restart: on-failure # 合并失败时自动重试
启动服务:
bashdocker-compose up
通过挂载包含 .mergeignore 文件的目录,可排除无需合并的文件(语法同 .gitignore):
# /path/to/local/specs/.mergeignore *.tmp.yaml # 排除临时文件 draft/ # 排除草稿目录
OPENAPI_VERSION 指定)

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务