相关疑难解决方法(0)

如何合并多个OpenAPI规范?

我正在努力寻找一种解决方案,如何将多个 OpenApi v3 组件定义合并到一个文件中。

让我们想象一个情况:

  1. 您决定将 OpenApi 拆分为不同文件夹中的多个文件。(见下图)项目结构
  2. 现在您需要将所有的 Components.v1.yaml 合并到一个架构中(我将其命名为blueprint.v1.yaml)。通常,我用来swagger-cli合并所有$ref依赖项,但现在不是这样,因为我无法引用整个组件/模式对象列表 blueprint.v1.yaml 内容
  3. 并使用它通过工具构建一个填充了所有字段的 OpenApi 文件:信息、组件、路径等swagger-cli bundle

所以,问题是 - 如何在我的blueprint.v1.yaml文件中重用已定义的组件块(名为 Components.v1.yaml 的文件)?

PS 每个components.v1.yaml看起来都是这样的: Components.v1.yaml内容

例如,location-create-single.v1.yaml路径定义如下图所示。值得一提的是,所有这些都是$refcomponents.v1.yaml文件。 在此输入图像描述

swagger openapi swagger-codegen openapi-generator

14
推荐指数
1
解决办法
2万
查看次数

合并多个 swagger 文件

我为我的项目正在使用的 RESTful API 提供了 Swagger 2.0 json 文件。该提供商没有 SDK,因此我使用 Swagger 文件生成用于与服务集成的起点。它分为 50 多个文件,按端点集合分组。如何将它们合并到符合规范的单个 JSON 或 YAML 文件中,以便我可以立即为所有端点生成 SDK?

swagger swagger-2.0

7
推荐指数
1
解决办法
1万
查看次数

如何在 Maven 中将多个 OpenAPI 3.0 规范文件合并为一个?

在使用 Spring Boot 的 Maven 项目中,有多个 OpenAPI 3.0 规范文件。一个规范定义了所有 HTTP 错误 (errors.yml),并且 error.yml 的组件在其他规范中引用。我想生成一个输出规范,其中包含 error.yml 的所有组件。

输入规格:

  schema:
    $ref: "errors.yml#/components/schemas/Error"
Run Code Online (Sandbox Code Playgroud)

期望的输出规格:

schema:
  $ref: "#/components/schemas/Error"
  ...
Error:
  ...
Run Code Online (Sandbox Code Playgroud)

我可以使用 swagger-codegen-cli 来做到这一点:

java -Dfile.encoding=UTF-8 -jar swagger-codegen-cli-3.0.33.jar generate -l openapi-yaml -i search-api-contract/target/expert_api.yml -o . -DoutputFile=search-api-contract/target/expert_api.yml
Run Code Online (Sandbox Code Playgroud)

如何使用 Maven pom.xml 生成一份规范?

maven openapi swagger-codegen swagger-codegen-maven-plugin

7
推荐指数
1
解决办法
8504
查看次数