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

2023-11-28

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

输入规格:

  schema:
    $ref: "errors.yml#/components/schemas/Error"

期望的输出规格:

schema:
  $ref: "#/components/schemas/Error"
  ...
Error:
  ...

我可以使用 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

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


Swagger Codegen 有一个Maven插件。你可以这样使用它:

<plugin>
    <groupId>io.swagger.codegen.v3</groupId>
    <artifactId>swagger-codegen-maven-plugin</artifactId>
    <version>3.0.33</version>
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <inputSpec>path/to/main/openapi.yaml</inputSpec>

                <!-- Use 'openapi-yaml' to get resolved YAML or 'openapi' to get resolved JSON -->
                <language>openapi-yaml</language>

                <!-- Default is ${project.build.directory}/generated-sources/swagger -->
                <output>path/to/output/folder</output>

                <configOptions>
                    <!-- Default output file name is 'openapi.yaml' or 'openapi.json' -->
                    <outputFile>myapi.yaml</outputFile>
                </configOptions>
            </configuration>
        </execution>
    </executions>
</plugin>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 检测 macOS 鼠标光标下的颜色

    我想知道如何获取 OS X macOS 鼠标指针当前所在像素的颜色 我编写了一个控制台应用程序 所以我没有可以覆盖的窗口或其他东西 当我构建并运行该程序时 它应该为我提供鼠标指针当前所在颜色的控制台日志 那可能吗 Using 这个问题和答案
  • 如何向 iframe 中的 p 元素添加点击事件(使用 jQuery)

    如何添加点击事件 p iframe 中的元素 使用 jQuery 有一个特殊的 jQuery 函数可以做到这一点 contents 请参阅示例了解其工作原理 p
  • 是否可以使用 fgets 或 gets_s 正确读取空字符?

    假设我想读取stdin 并让用户输入包含空字符的字符串 这可以通过字符串输入函数实现吗fgets or gets s 或者我必须使用例如fgetc or fread Someone here想做这个 For fgets yes fgets被
  • SQL 帮助:Select 语句连接一对多关系

    例如我有两张桌子 第一个表是学生 第二个表是学生正在学习的课程 如何使用 select 语句以便我可以看到两列学生和课程 以便课程以逗号分隔 Thanks 假设您使用的是 SQL Server 2005 这应该可以满足您的需求 显然可以根据
  • 防止循环连接、递归搜索

    所以在我的情况下我有三个表 list item and list relation Each item将通过以下方式链接到一个列表list id外键 the list relation看起来像这样 CREATE TABLE list rel
  • 当dispatch_async任务完成时我如何收到通知?

    我有一个像这样的异步任务 dispatch async dispatch get main queue myAsyncMethodsHere 有没有办法在后台任务完成时收到通知 或者在完成后调用一个方法 我已通读文档并研究了dispatch
  • Android studio Gradle 找不到方法compile()

    在过去的两天里 我试图找到解决这个问题的方法 但没有成功 我正在尝试包括GSON库 进入我的android项目 这是我的文件夹结构的图片 现在在我的 build gradle 中我有以下内容 Top level build file whe
  • 如何发出错误以便可以在客户端的错误处理程序上捕获它?

    我需要在连接处理程序中发出错误并在客户端捕获它 如下所示 服务器端 var http require http var sio require socket io var app require express var server req
  • 批量编写实时进度条

    我想使用实时进度条 它会随着代码的编写 安装或加载文件而更新 Example echo off main echo Updating file PROGRESS BAR HERE PROGRESS BAR HERE 表示我想要放置实时进度条
  • 选择日期/时间范围内的数据

    如何在 MySQL 中选择日期范围内的数据 我的datetime列采用 24 小时祖鲁时间格式 select from hockey stats where game date between 11 3 2012 00 00 00 and
  • 如何更改 kubernetes 节点的名称

    我在 kubernetes 集群中有一个正在运行的节点 有什么办法可以更改它的名称吗 我已经尝试过 使用 kubectl delete 删除节点 更改节点清单中的名称 将节点添加回来 但节点不会启动 有人知道应该怎么做吗 Thanks 通常
  • 数组 [] 括号内的 static 关键字[重复]

    这个问题在这里已经有答案了 我最近发现了新的用法static关键词 什么是static意思是这里 void fun int some array static 7 EDIT 有人能举个例子吗 该标准在6 7 6 3中规定 将参数声明为 类型
  • ASP.NET MVC Bootstrap 动态模式内容

    我正在使用 MVC 5 并且我有一个
  • MongoDB 全文搜索 vs Lucene? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 目前 MongoDB 的全文搜索与 Lucene 相比如何 提出这个问题的原因是由于我不确定 a 在生产中使用 mongo 的 FTS 实现 因为大约 6 个月前它仍处于测试阶段 and
  • SOAP 和 REST Web 服务有什么区别? SOAP 可以是 RESTful 的吗?

    来自 MSDN 杂志https msdn microsoft com en us magazine dd315413 aspx and https msdn microsoft com en us magazine dd942839 asp
  • 组织功能文件的最佳方式是什么? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我尚未解决的一个挑战是以某种方式组织我的功能文件和场景 这样可以轻松地在 Specflow 和 BDD 中导航和探索 想象一下一年后有人想要来了解这
  • GCP PubSub:通过 CURL 类型的请求发布消息

    有没有人有一个工作示例 说明如何直接从 shell 通过 CURL 类型的命令将消息发布到 GCP PubSub 主题 我试图不使用 CLI 也不使用客户端库 而且我对 OAUTH 的东西很感兴趣 我很高兴能有一个在 Linux 上运行的
  • 如何创建特定 TFS 2010 源代码管理路径的资源管理器快捷方式

    我们正在慢慢地将项目从旧的基于文件的存储 不要问 转移到 tfs 我们的编码员仍然习惯在文件系统中查找代码 由于我们正在讨论 100 个项目 每个项目都有一定的历史 因此我们必须小心地逐个移动它们 因此 我们将不得不在一段时间内将现有的文件
  • 是否可以从 Golang 中的父结构调用重写的方法?

    我想实现这样的代码 其中B继承自A并且只重写A的Foo 方法 并且我希望代码打印B Foo 但它仍然打印A Foo 看来接收者在Golang在C 中不能这样工作 当启用动态绑定时 代码可以像我想要的那样工作 我还发布了另一段代码 它可以工作
  • 如何在 Maven 中将多个 OpenAPI 3.0 规范文件合并为一个?

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