swagger-codegen 客户端:如何在模型上包含 Jackson 注释

2023-12-26

我正在使用 swagger-codegen 生成一个休息客户端,但遇到一个问题,我正在使用的服务返回一个具有继承的模型,API 模型如下所示:

public class Person
{
    private List<Book> books;
    ...
}

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "typeClass")
@JsonSubTypes({ @JsonSubTypes.Type(value = Magazine.class) })
public class Book 
{
    //some prop
}

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "typeClass")
public class Magazine extends Book
{
    //some prop
}

API模型使用jackson注解进行注解来处理继承。 API 工作正常。 当我生成客户端时,客户端模型没有 Jackson 注释,因此当我使用生成的客户端来使用 API 时,它总是使用 Book 类进行反序列化。它不会“看到”杂志类。我认为这是因为生成的模型没有处理继承的杰克逊注释。

如何配置 swagger-codegen 以将 jackson 注释添加到模型中。

多谢...


而不是使用

    java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate 
   -i http://petstore.swagger.io/v2/swagger.json   
    -l java
    -o samples/client/petstore/java

你可以与

java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate 
-i http://petstore.swagger.io/v2/swagger.json   
-l spring
-o samples/client/petstore/java

通过语言更改,他们还将 gson 替换为 Jackson。

在你的情况下你会有类似的东西

import java.util.Objects;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.model.Category;
import io.swagger.model.Tag;
import java.util.ArrayList;
import java.util.List;
import org.springframework.validation.annotation.Validated;
import javax.validation.Valid;
import javax.validation.constraints.*;

/**
 * Pet
 */
@Validated
@javax.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2020-06-04T13:33:18.844+02:00")




public class Pet   {
  @JsonProperty("id")
  private Long id = null;

  @JsonProperty("category")
  private Category category = null;

  @JsonProperty("name")
  private String name = null;

  @JsonProperty("photoUrls")
  @Valid
  private List<String> photoUrls = new ArrayList<String>();

  @JsonProperty("tags")
  @Valid
  private List<Tag> tags = null;
      ...

source: https://github.com/swagger-api/swagger-codegen/issues/5785 https://github.com/swagger-api/swagger-codegen/issues/5785

当您使用 Generator.Swagger 构建客户端时(https://generator.swagger.io/ https://generator.swagger.io/在线 swagger Codegen api:/gen/clients/{language}) 然后你可以查看 /gen/clients/{language} 中的设置或https://openapi-generator.tech/docs/generators/java/ https://openapi-generator.tech/docs/generators/java/并据此提出您的要求。

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

swagger-codegen 客户端:如何在模型上包含 Jackson 注释 的相关文章

  • Firebase 查询 Or'ing whereEqualTo 以获得可能值的列表

    我见过之前针对早期版本的 Firebase 提出过这个问题 https stackoverflow com questions 26700924 query based on multiple where clauses in fireba
  • 如何使用 SLF4J 和 Log4j2 记录 FATAL(或任何自定义日志级别)

    我有那些具体的要求 需要能够登录FATAL level 需要使用SLF4J 需要使用Log4j2 现在 这是我的执行 final Logger logger LoggerFactory getLogger HelloWorld class
  • 从 OMElement 对象获取 InputStream/io.Reader

    我有一个OMElement对象 从中我想得到一个InputStream或读者对象 我想要的是流式传输xml来自OMElement我有 没有加载到内存中 我只能得到XMLStreamReader对此表示反对 但我找不到办法得到InputStr
  • Java Swing:清除JList而不触发监听器

    我的情况如下 我有一个 JList 只要在列表中进行选择 它就会触发搜索 使用 ListSelectionListener 我正在尝试使用以下命令重置列表上的选择list clearSelection 这样做的问题是使用clearSelec
  • 使用多个构造函数创建不可变类

    我正在阅读这一页 https docs oracle com javase tutorial essential concurrency imstrat html关于在 Java 中创建不可变类 并决定根据页面上概述的规范修改我正在编写的类
  • @PreUpdate 不适用于 Spring Data JPA

    我有一个实体 Entity EntityListeners MyEntityListener class class MyEntity 还有听者 class MyEntityListener PrePersist PreUpdate pub
  • Java:检查给定日期是否在当前月份内

    我需要检查给定的日期是否在当前月份 我编写了以下代码 但 IDE 提醒我getMonth https docs oracle com javase 7 docs api java util Date html getMonth and ge
  • 如何消除警告:使用“$”而不是“.”对于 Eclipse 中的内部类

    我是 Android 开发新手 当我将 eclipse 和 Android SDK 更新到最新版本后 我收到警告 Use instead of for inner classes or use only lowercase letters
  • Java 的 QP 求解器 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Vertx HttpClient getNow 不工作

    我的 vertx HttpClient 有问题 下面的代码显示使用 vertx 和纯 java 测试 GET Vertx vertx Vertx vertx HttpClientOptions options new HttpClientO
  • Java G1 GC 处理引用对象运行缓慢

    我已经在 J ava 上运行了计数器 它24小时工作 每秒点击通过100次左右 白天 GC 处理时间从 20 60 毫秒缓慢上升到 10000 60000 毫秒 然后下降到 20 60 毫秒 这种模式不时地重复 从 GC 日志中我发现 GC
  • 如何在WCF Rest服务中从流上传图像

    我正在尝试创建 wcf 服务 该服务将上传 pdf doc xls 图像等文件 但 pdf txt 文件正在上传并正确打开 但是当我尝试上传图像文件时 文件正在上传 但是图像不可见 OperationContract WebInvoke M
  • 嵌入式 tomcat 7 servlet 3.0 注释不起作用

    我有一个精简的测试项目 其中包含 Servlet 版本 3 0 用注释声明 如下所示 WebServlet test public class TestServlet extends HttpServlet private static f
  • 存储过程将多个表返回到 spring jdbc 模板

    我正在使用 JdbcTemplate 从 Spring DAO 类调用存储过程 我的问题是 存储过程返回多个表 有没有办法使用 Spring JdbcTemplate 访问多个表 如果我使用jdbcTemplate queryForList
  • 如何计算文件中单词的长度?爪哇

    我正在尝试编写一个代码来计算文件中特定长度的单词数 例如 How are you 会打印 Proportion of 3 letter words 100 3 words 我想计算长度为 1 2 3 4 5 6 7 8 9 10 11 12
  • Android 中的字符串加密

    我正在使用代码进行加密和加密 它没有给出字符串结果 字节数组未转换为字符串 我几乎尝试了所有方法将字节数组转换为字符 但没有给出结果 public class EncryptionTest extends Activity EditText
  • Java泛型类型

    当我有一个界面时 public interface Foo
  • 如何在Java中跨类共享变量,我尝试了静态不起作用

    类 Testclass1 有一个变量 有一些执行会改变变量的值 现在在同一个包中有类 Testclass2 我将如何访问 Testclass2 中变量的更新值 由 Testclass1 更新 试过这个没用 注意 Testclass1和Tes
  • 将隐藏(生物识别)数据附加到 pdf 上的数字签名

    我想知道是否可以使用 iText 我用于签名 或 Java 中的其他工具在 pdf 上添加生物识别数据 我会更好地解释一下 在手写板上签名时 我会收集签名信息 例如笔压 签名速度等 我想将这些信息 java中的变量 与pdf上的签名一起存储
  • 如何使用 Spring AOP 建议静态方法?

    在执行类的静态方法之前和之后需要完成一些日志记录 我尝试使用 Spring AOP 来实现这一点 但它不起作用 而对于正常方法来说它起作用 请帮助我理解如何实现这一点 如果可以使用注释来完成 那就太好了 也许您应该在使用 Spring AO

随机推荐

  • Linq to SQL 的未来是什么

    我一直在网上搜索 Linq 教程 发现一些文章说 linq 可能会消失 你对此有什么看法 微软真的会废除linq吗 Linq to SQL 并没有像实体框架那样受到足够多的关注来发展其功能 MS 已决定追求丰富 发展 EF 对于 L2S 这
  • 为什么在 UI 中使用 DataTable 是错误的?

    我是初学者 我发现很难理解这里的一个概念 有人告诉我不应该在 UI 级别使用 DataTable 请帮助我理解这个概念 解决方案 MyApp Data MyApp Logic MyApp Web MyApp Web 引用 MyApp Log
  • Observer.onError 触发不一致

    我正在使用 Retrofit 访问我的 API 如下所示 public interface UserService POST user login public Observable
  • Libgdx 和 Box2DLights - 太亮 + 颜色变灰

    我正在使用 LibGDX 和 Box2DLights 编写一个游戏来进行照明 第一个问题是当我的灯光相互重叠时 我在太阳上有定向光 在角色上有点光 当它们重叠时 输出颜色太亮 我尝试改变灯光的颜色 但是当只有一盏灯 太暗 时 降低这些颜色会
  • 一个很好的参考卡/备忘单,其中包含 C 语言的基本排序算法? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我一直在寻找 没有太大运气 带有 C 语言 或者可能是伪代码 中的所有基本排序算法的完美参考卡 维基百科是一个很棒的信息来源 但这次我
  • getString() 和 getResources.getString() 之间的区别

    我注意到Activity类有两种不同的方法来获取 String 资源 这可以通过使用 getString int resId 从应用程序包的默认字符串表中返回本地化字符串 getResources getString int id 返回与特
  • .NET Framework可以在Win98上使用吗?

    我需要为客户编写一个在 Windows 98 上运行的小工具 由于这是一个非常小的项目 我希望我可以避免使用本机 C 并使用 C The net框架2 0下载 http www microsoft com downloads details
  • 在哪里可以找到 ReportEvent 函数使用的好示例?

    与大多数 传统 MSDN 页面一样 该页面报告事件 http msdn microsoft com en us library aa363679 VS 85 aspx信息太少 我无法理解它的意义 我尝试过搜索 但找不到一个好的 干净的 简单
  • 如何在经典 ASP 中设置断点? (IIS7/VS2010)

    我有一个混合 ASP NET 经典 ASP 应用程序 我希望能够在 ASP 代码中设置断点 这可能吗 在Win7上使用VS2010 Ultimate运行IIS7 在 VBScript 中 Stop http msdn microsoft c
  • 使用 MPI 分散不同大小的矩阵块

    假设所有矩阵都按行优先顺序存储 说明该问题的一个示例是将 10x10 矩阵分布在 3x3 网格上 以便每个节点中的子矩阵的大小如下所示 3x3 3x3 3x4 3x3 3x3 3x4 4x3 4x3 4x4 我在 Stackoverflow
  • 改进单选按钮的使用以启用/禁用表单字段

    我有两个单选按钮和两个相应的表单字段 根据选择的单选按钮 一个表单字段将被禁用 而另一个表单字段将被启用 我的代码可以工作 但我认为它可以改进 现在我有两个独立的进程 检查页面加载时选择了哪个单选按钮并禁用相应的字段 另一个在页面加载后响应
  • 将下拉菜单与年份绑定

    我必须在 C 中绑定一个下拉框 其中包含从 2008 年到当前年份的年份 我怎样才能实现它 您可以使用以下命令构建整数序列System Linq Enumerable Range var startYear 2008 myDropDownL
  • Swift 3 - 如何提取正则表达式中捕获的组?

    我正在使用 Swift 3 并尝试访问捕获的组 let regexp ALREADY PAID NOT ALR PROVIDER MAY READY MAY BILL BILL YOU PAID n d d d check if some
  • 连接被拒绝 - connect(2) 用于“localhost”端口 25 Rails

    在培训期间 我正在开发一个网站 我们使用 Ruby on Rails 我们需要向用户发送邮件 所以我创建了一个邮件程序 我尝试过将 smtp 放在两者中development rb and environment rb config act
  • 如何在action类和jsp页面之间传递对象数据?

    我有一个名为 Code 的 Java 类 它具有与代码相关的所有值 例如codeId codeDescription等等及其 getter 和 setter 我正在成功检索一个操作类中的代码数据 我正在使用 struts 2 现在我想将这些
  • Go 中的 Unix FIFO?

    有没有办法用Go语言创建unix FIFO 没有Mkfifo nor Mknod in os包 尽管我预计命名的 FIFO 主要用于 posix 操作系统 事实上 有一个创建未命名的 FIFO 管道 的函数 但没有创建命名管道的函数 我是唯
  • 使用constraintEqualToAnchor()时设置自动布局约束后如何更改它们?

    我尝试使用以下命令设置具有自动布局约束的视图constraintEqualToAnchor override func viewDidLoad super viewDidLoad let myView UIView myView backg
  • 如果不存在则调用自由函数而不是方法

    假设您有一系列与类型无关的类 通过返回值的给定方法来实现共同概念 class A public int val const class B public int val const 假设您需要一个通用的自由函数T为未实现的任何类型返回常规值
  • 通过 ASPX 页面流式传输 PDF 数据

    我如何在我的网络服务器上流式传输 pdf 文件 并像谷歌文档一样在我自己的页面中显示它 该页面嵌入到页面中 None
  • swagger-codegen 客户端:如何在模型上包含 Jackson 注释

    我正在使用 swagger codegen 生成一个休息客户端 但遇到一个问题 我正在使用的服务返回一个具有继承的模型 API 模型如下所示 public class Person private List