更改 Spring openapi-generator-maven-plugin 生成的接口的返回类型

2023-11-27

我已成功从 .yaml open-api 描述符文件生成接口,但是,如问题标题所示,我希望将这些接口的响应类型从 ResponseEntity 更改为我自己的类型。基本上而不是具有此签名的接口:

 ResponseEntity<Void> clearCache();

对于基本上以这种方式实现的方法:

public void clearCache(){ //do something}

我希望生成的界面就像

void clearCache();

对于我自己定义的类也是如此,而不是ResponseEntity<MyBook> getBook(String ISBN);我希望它只是使用MyBook作为返回类型,所以它应该看起来像MyBook getBook(String ISBN);我用于 openapi-generator 插件的当前设置是

        <plugin>
            <groupId>org.openapitools</groupId>
            <artifactId>openapi-generator-maven-plugin</artifactId>
            <version>4.3.0</version>
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <inputSpec>my-own-service-be/src/main/resources/api-docs.yaml</inputSpec>
                        <generatorName>spring</generatorName>
                        <additionalProperties>
                             <additionalProperty>skipDefaultInterface=true</additionalProperty>
                            <additionalProperty>interfaceOnly=true</additionalProperty>
                        </additionalProperties>
                        <generateApis>true</generateApis>
                        <apiPackage>controller</apiPackage>
                        <supportingFilesToGenerate>false</supportingFilesToGenerate>
                        <modelPackage>dto</modelPackage>
                        <generateModelTests>false</generateModelTests>
                        <generateApiTests>false</generateApiTests>
                    </configuration>
                </execution>
            </executions>
        </plugin>

我们最近遇到了类似的挑战。您需要做的就是调整模板。为此,您需要从 OpenAPI 项目中找到生成器的源模板。那将是this api.mustache file在你的情况下。

只需将其复制到例如你的src/main/resources/文件夹(可能位于名为custom)并根据您的需要进行调整,即替换响应类型。

然后你需要调整你的pom.xml这样您的自定义模板文件就会被实际使用:

     <configuration>

        <!-- The following line is crucial: -->
        <templateDirectory>${project.basedir}/src/main/resources/custom</templateDirectory>

        <inputSpec>${project.basedir}/src/main/resources/api.yaml</inputSpec>
        <generatorName>spring</generatorName>
        <configOptions>
            <sourceFolder>src/gen/java/main</sourceFolder>
        </configOptions>
    </configuration>

还可以看看这个模板文档有关该主题的更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改 Spring openapi-generator-maven-plugin 生成的接口的返回类型 的相关文章

  • Android:文本淡入和淡出

    我已阅读此 stackoverflow 问题和答案 并尝试实现文本淡入和淡出 Android中如何让文字淡入淡出 https stackoverflow com questions 8627211 how to make text fade
  • 如何调试“com.android.okhttp”

    在android kitkat中 URLConnection的实现已经被OkHttp取代 如何调试呢 OkHttp 位于此目录中 external okhttp android main java com squareup okhttp 当
  • 如何在 JPQL 或 HQL 中进行限制查询?

    在 Hibernate 3 中 有没有办法在 HQL 中执行相当于以下 MySQL 限制的操作 select from a table order by a table column desc limit 0 20 如果可能的话 我不想使用
  • 从 MATLAB 调用 Java?

    我想要Matlab程序调用java文件 最好有一个例子 需要考虑三种情况 Java 内置库 也就是说 任何描述的here http docs oracle com javase 6 docs api 这些项目可以直接调用 例如 map ja
  • 将巨大的模式编译成Java

    有两个主要工具提供了将 XSD 模式编译为 Java 的方法 xmlbeans 和 JAXB 问题是 XSD 模式确实很大 30MB 的 XML 文件 大部分模式在我的项目中没有使用 所以我可以注释掉大部分代码 但这不是一个好的解决方案 目
  • 如何检查某个元素是否存在于一组项目中?

    In an ifJava中的语句如何检查一个对象是否存在于一组项目中 例如 在这种情况下 我需要验证水果是苹果 橙子还是香蕉 if fruitname in APPLE ORANGES GRAPES Do something 这是一件非常微
  • Android 无法解析日期异常

    当尝试解析发送到我的 Android 客户端的日期字符串时 我得到一个无法解析的日期 这是例外 java text ParseException 无法解析的日期 2018 09 18T00 00 00Z 位于 偏移量 19 在 java t
  • 从jar中获取资源

    我有包含文件的 jar myJar res endingRule txt myJar wordcalculator merger Marge class 在 Marge java 中我有代码 private static final Str
  • 在Java中运行bat文件并等待

    您可能会认为从 Java 启动 bat 文件是一项简单的任务 但事实并非如此 我有一个 bat 文件 它对从文本文件读取的值循环执行一些 sql 命令 它或多或少是这样的 FOR F x in CD listOfThings txt do
  • 在 Java 中获取并存储子进程的输出

    我正在做一些需要我开始子处理 命令提示符 并在其上执行一些命令的事情 我需要从子进程获取输出并将其存储在文件或字符串中 这是我到目前为止所做的 但它不起作用 public static void main String args try R
  • 如何解决 openapi-generator-maven-plugin 使用已弃用的类?

    我尝试将 openapi generator maven plugin 与 Spring Boot 2 4 3 一起使用 根据互联网上的一些示例 按照 openapi yaml 中制定的规范生成代码 但没有示例提供包含所需的完整依赖项 该插
  • 部署 .war 时出现 Glassfish 服务器错误:部署期间发生错误:准备应用程序时出现异常:资源无效

    我正在使用以下内容 NetBeans IDE 7 3 内部版本 201306052037 爪哇 1 7 0 17 Java HotSpot TM 64 位服务器虚拟机 23 7 b01 NetBeans 集成 GlassFish Serve
  • java XMLSerializer 避免复杂的空元素

    我有这个代码 DocumentBuilderFactory factory DocumentBuilderFactory newInstance DocumentBuilder builder factory newDocumentBuil
  • Java 正则表达式中的逻辑 AND

    是否可以在 Java Regex 中实现逻辑 AND 如果答案是肯定的 那么如何实现呢 正则表达式中的逻辑 AND 由一系列堆叠的先行断言组成 例如 foo bar glarch 将匹配包含所有三个 foo bar 和 glarch 的任何
  • 子类构造函数(JAVA)中的重写函数[重复]

    这个问题在这里已经有答案了 为什么在派生类构造函数中调用超类构造函数时 id 0 当创建子对象时 什么时候在堆中为该对象分配内存 在基类构造函数运行之后还是之前 class Parent int id 10 Parent meth void
  • Log4j2 ThreadContext 映射不适用于parallelStream()

    我有以下示例代码 public class Test static System setProperty isThreadContextMapInheritable true private static final Logger LOGG
  • Java RMI - 客户端超时

    我正在使用 Java RMI 构建分布式系统 它必须支持服务器丢失 如果我的客户端使用 RMI 连接到服务器 如果该服务器出现故障 例如电缆问题 我的客户端应该会收到异常 以便它可以连接到其他服务器 但是当服务器出现故障时 我的客户端什么也
  • MiniDFSCluster UnsatisfiedLinkError org.apache.hadoop.io.nativeio.NativeIO$Windows.access0

    做时 new MiniDFSCluster Builder config build 我得到这个异常 java lang UnsatisfiedLinkError org apache hadoop io nativeio NativeIO
  • 由 Servlet 容器提供服务的 WebSocket

    上周我研究了 WebSockets 并对如何使用 Java Servlet API 实现服务器端进行了一些思考 我没有花费太多时间 但在使用 Tomcat 进行一些测试时遇到了以下问题 如果不修补容器或至少对 HttpServletResp
  • java'assert'和'if(){}else exit;'之间的区别

    java和java有什么区别assert and if else exit 我可以用吗if else exit代替assert 也许有点谷歌 您应该记住的主要事情是 if else 语句应该用于程序流程控制 而assert 关键字应该仅用于

随机推荐

  • 具有 2 个主键字段的 JPA 表

    我有一个只包含 2 个字段的表 该表有一个由这两个字段组成的复合PK 当使用 Netbeans 从数据库创建实体 bean 时 实体 bean 不会像其他具有 2 个以上字段的表那样自动创建 所以我想我需要自己创建实体bean 创建此实体
  • 直接调用全局安装的Node.js模块

    假设我想为 Node js 编写一个要全局安装的模块 我不想编写任何 C 或其他东西 而是编写普通的 Node js 代码 基本上 这很容易 只需编写模块 然后使用安装即可npm install g 现在 大多数全局安装的模块都提供了直接调
  • elm 生成随机数

    我想在 elm 中的两个值之间生成一个随机 int 像这样的东西 nb random 0 10 我已阅读该文档和多篇文章 最好的答案来自这个 stackoverflowpost gen Random int 0 10 seed0 Rando
  • iOs 中 HTML5 音频元素的持续时间值存在问题

    我正在为 iOs 设备开发一个网络应用程序 但 html5 音频标签有问题 我设计了一个自定义音频播放器 并使用 JavaScript 函数控制歌曲 在 safari 桌面版上 该应用程序运行良好 但在 safari 移动版上 它无法识别音
  • 如何更改JFreeChart饼图颜色?

    如何自定义 JFreeChart 图形的颜色 让我们看看我的java代码 private StreamedContent chartImage public void init JFreeChart jfreechart ChartFact
  • Swift,与方法名相同的变量

    我有一个 var formVC UIViewController 我还试图有一个名为 func formVC gt UIViewController 我知道它在 OBJC 中有效 但我没有看到在 Swift 中做到这一点的方法 有没有办法解
  • ActionBarActivity 和 Fragment Activity 的区别

    我是 Android 菜鸟 我刚开始使用ActionBarActivity over FragmentActivity 他们之间有什么区别吗 FragmentActivity是基于支持的片段的基类 所以你将使用Fragment来自 API
  • 在 vue 3 中导入 bootstrapVue

    您好 我尝试在我的 vue 3 应用程序中使用 bootstrapVue 和 typescript 这里是我的 main ts import createApp from vue import App from App vue import
  • R 与其他非 Java 语言的接口/将 R 编译为可执行文件

    我开发了一个与数据库一起使用的 R 脚本 进行一系列处理并输出图形和表格 我可以将该数据输出为逗号分隔值和图片 以便稍后将它们导入到我的软件中 这没有问题 问题是如何分发我的应用程序而无需在客户端上完整安装 R 我见过 RJava 之类的东
  • Xcode 针对不同目标使用不同资源

    我正在开发一个 iPhone 应用程序 该应用程序将有完整版和精简版 为了从相同的源代码和 Xcode 项目中获取这两个包 我向 Xcode 项目添加了另一个目标 现在 我想让 Lite 目标仅将资源文件的子集复制到捆绑包中 但是 Xcod
  • 如何提取图像中的白色区域

    我有一个像这样的示例图像 我正在寻找一种方法来消除图像中的噪声 这样我最终会得到一个在白色背景上只有黑色文本的图像 以便我可以将其发送到超立方体 我尝试过变形 kernel np ones 4 4 np uint8 opening cv2
  • C# 获取列表中的非重复项[重复]

    这个问题在这里已经有答案了 有了这样的列表 int numbers 1 2 2 3 3 4 4 5 我可以使用 Distinct 函数删除重复项 因此列表将显示 1 2 3 4 5 然而 我想要相反的 我希望它删除所有重复的数字 留下唯一的
  • 获取标题不完全已知的窗口的句柄。 (C#)

    标题是部分静态的 带有可变后缀 例如 窗口标题 user id 在不知道确切标题的情况下如何获取句柄 查看所有进程并检查主窗口标题 您可以使用正则表达式 或者StartsWith etc foreach Process proc in Pr
  • Linq If 语句

    我如何在 linq toEntity 中写这样的东西 sb Append WHERE question question isdeleted 0 if catid 0 sb AppendFormat AND CatID IN 0 catsS
  • 将 EFS 卷附加到 Kubernetes Pod 时遇到问题

    我在 AWS EKS 上的 kubernetes 集群的帮助下运行我的 docker 容器 我的两个 docker 容器正在使用共享卷 并且这两个容器都在两个不同的 pod 内运行 所以我想要一个可供 aws 上的两个 Pod 使用的通用卷
  • 如何将 BufferedImage 保存为低于特定大小

    使用 java 8 给定图像用户需要能够指定最小 最大图像大小 以像素为单位 以及保存图像的最大大小 以 kbs 为单位 图像将保存为 jpg 所以我首先通过调整缓冲图像的大小来工作 public static BufferedImage
  • 如何指定决策树的 graphviz 表示的 Figsize?

    我有一个GraphViz在 iris 数据集上训练的决策树的表示 import graphviz dot data tree export graphviz clf out file None feature names iris feat
  • 警告:不允许使用广告密钥“服务数据”

    我正在开发 BLE 外设应用程序 根据要求 广告包中必须包含Service Data字段 我在Android中做到了这一点 数据包应该是这样的 0x16 是此处列出的服务数据字段https www bluetooth com specifi
  • ScriptApp.getService().getUrl() 的行为似乎已经改变

    Summary 我一直在使用ScriptApp getService getUrl 成功获取我的 Google Apps 脚本项目中的当前实例 dev prod 一段时间了 截至昨天 返回值似乎完全取决于 URL 是否以以下结尾 dev或不
  • 更改 Spring openapi-generator-maven-plugin 生成的接口的返回类型

    我已成功从 yaml open api 描述符文件生成接口 但是 如问题标题所示 我希望将这些接口的响应类型从 ResponseEntity 更改为我自己的类型 基本上而不是具有此签名的接口 ResponseEntity