如何合并多个OpenAPI规范?

问题描述 投票:0回答:1

我在这里挖来挖去,试图找到一个解决方案,如何将多个OpenApi v3组件定义合并到一个文件中。

让我们想象一下这样的情况。

  1. 您决定将您的OpenApi分割成多个文件在不同的文件夹中。(见下图)project structure
  2. 现在您需要将所有的 components.v1.yaml 组合成一个单一的模式(我将它命名为 blueprint.v1.yaml). 通常情况下,我使用 swagger-cli 合并所有 $ref 依赖关系,但现在不是这样的情况,因为我不能引用整个 componentsschemas 对象列表。blueprint.v1.yaml content
  3. 并使用它来建立一个单一的OpenApi文件,其中包含所有的字段:信息、组件、路径等,并通过一个 swagger-cli bundle 工具。

因此,问题是--如何在我的 blueprint.v1.yaml 文件?

P.S. 每一个 components.v1.yaml 看起来像这样。components.v1.yaml content

和一个,例如: location-create-single.v1.yaml 路径定义如下图所示。需要注意的是,所有 $ref 指的是 components.v1.yaml 文件。enter image description here

swagger openapi swagger-codegen openapi-generator
1个回答
4
投票

我不认为有一个 "原生的 "OpenAPI解决方案来解决你的问题。人们已经讨论了一段时间关于OpenAPI覆盖扩展合并的问题。. 目前(2020-04-24)还没有任何关于这个话题的共识。

虽然你可以实现自己的工具 或使用现有的 来预处理您的 blueprint.v1.yaml 并产生 "合并的美洲国家组织".

© www.soinside.com 2019 - 2024. All rights reserved.