swagger 如何合并多个OpenAPI规范?

kadbb459  于 2023-01-26  发布在  其他
关注(0)|答案(2)|浏览(235)

我在这里挖掘,试图找到一个解决方案,如何将几个OpenApi v3组件定义合并到一个文件中。
让我们设想一个情况:
1.您决定将OpenApi拆分为不同文件夹中的多个文件。(见下图)x1c 0d1x
1.现在您需要将所有的components.v1.yaml合并到一个模式中(我将其命名为blueprint.v1.yaml),通常,我使用swagger-cli来合并所有的$ref依赖项,但现在不是这种情况,因为我无法引用整个组件/模式对象列表

1.并使用它构建一个OpenApi文件,其中所有字段都已填充:信息、组件、路径等,使用swagger-cli bundle工具。
因此,问题是-如何重用blueprint.v1.yaml文件中已经定义的组件块(称为components.v1.yaml的文件)?
另外,每个components.v1.yaml看起来都像这样:

例如,location-create-single.v1.yaml路径定义如下图所示。请注意,所有$ref都引用components.v1.yaml文件。

wfveoks0

wfveoks01#

我不认为有一个“原生”的OpenAPI解决方案来解决你的问题。People are discussing for a while about OpenAPI overlays/extends/merges。目前(2020-04-24)没有任何关于这个主题的共识。
尽管您可以实现自己的工具或使用现有工具来预处理blueprint.v1.yaml并生成 “合并的OAS”

9avjhtql

9avjhtql2#

go-swagger有一个mixin命令,可以合并多个OpenAPI规范中的路径、定义等,并根据需要跳过重复的定义。

相关问题