swagger - 如何合并多个 OpenAPI 规范?
问题描述
我在这里挖掘试图找到一个解决方案,如何在一个文件中合并几个 OpenApi v3 组件定义。
让我们想象一个情况:
- 您决定将 OpenApi 拆分为不同文件夹中的多个文件。(见下图)
- 现在您需要将所有 components.v1.yaml 组合成一个模式(我将其命名为
blueprint.v1.yaml
)。通常,我使用swagger-cli
合并所有$ref
依赖项,但现在不是这种情况,因为我无法引用整个组件/模式对象列表 - 并使用它构建一个包含所有字段的单个 OpenApi 文件:信息、组件、路径等
swagger-cli bundle
。
所以,问题是 - 如何在我的文件中重用已经定义的组件块(称为 components.v1.yaml 的blueprint.v1.yaml
文件)?
PS 每个components.v1.yaml
看起来像这样:
例如,location-create-single.v1.yaml
路径定义如下图所示。提一下,这都是$ref
指components.v1.yaml
文件。
解决方案
我认为您的问题没有“本机”OpenAPI 解决方案。人们讨论了一段时间关于 OpenAPI 覆盖/扩展/合并。目前(2020-04-24)没有关于这个话题的任何共识。
尽管您可以实现自己的工具或使用现有的工具来预处理blueprint.v1.yaml
并生成“合并的 OAS”。
推荐阅读
- java - java - 如何从密钥库 (.p12) 开始生成 PrivateKey 和 PublicKey
- python-3.x - cv2.VideoCapture:为什么 .read() 总是返回 false 而 .open() 总是 True?
- c# - Razor Page POST 表单数据到控制器
- asp.net-core - AddInMemoryClients 导致未知客户端或未启用
- r - 使用带有 ggplot2 的 read.shp 绘制形状文件
- logstash - Logstash mutate gsub 在“if”语句中不起作用
- scala - 如何从列名集合创建列表达式?
- sql - 无法将列“some_field”更改为十进制数据类型
- python - 从csv创建熊猫数据框后,过滤结果返回空数据框
- python - 如何将项目列表发送到硒表单并为该列表中的每个项目按回车键?