openapi-generator - openapi-generator:java代码生成器,不生成鉴别器属性
问题描述
我正在使用 openapi-generator(5.0.0) 从 openapi.yaml 生成代码。Java 代码是用jaxrs-jersey
生成器生成的。
我有一个非常简单的带有鉴别器属性的继承结构。
...
Cat:
type: object
allOf:
- $ref: '#/components/schemas/Pet'
Dog:
type: object
allOf:
- $ref: '#/components/schemas/Pet'
Pet:
required:
- objectType
type: object
properties:
objectType:
type: string
discriminator:
propertyName: objectType
...
当我从中生成java代码时,我得到
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", visible = true)
@JsonSubTypes({ @JsonSubTypes.Type(value = Cat.class, name = "Cat"), @JsonSubTypes.Type(value = Dog.class, name = "Dog"), })
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen")
public class Pet {
private @Valid String objectType;
/**
*/
public Pet objectType(String objectType) {
this.objectType = objectType;
return this;
}
@ApiModelProperty(required = true, value = "")
@JsonProperty("objectType")
@NotNull
public String getObjectType() {
return objectType;
}
public void setObjectType(String objectType) {
this.objectType = objectType;
}
//....
}
对于 java 代码,对象的运行时类型是已知的,并且objectType
属性包含冗余信息。更糟糕的是,如果我忘记正确初始化它,则类信息不会序列化为 json。
我怎样才能摆脱objectType
财产?
(注意:我还生成了实际需要鉴别器属性的打字稿代码)
解决方案
推荐阅读
- c# - 仔细关闭流程
- opengl - SOIL2 与 cmake
- javascript - 如何在 ReactJS 中的地图循环(假设)中显示 base64
- ios - 在具有两个目标的 iOS 项目中,一个文件在一个目标中出现错误,而在为另一个目标编译时
- django - 如何渲染交互式 Dash - Plotly 使用 Django(REST 框架)?
- python - 如何修复 int() 参数在进行视频处理时必须是字符串、类似字节的对象或数字,而不是“NoneType”?(物体检测)
- reactjs - 如何使用 useState 仅更新对象数组中的特定对象?
- java - 如何限制 Java 中的恶意和垃圾文件上传?
- java - 未捕获的 SyntaxError:Function.parse [as parseJSON] 处 JSON 输入意外结束(
) - javascript - 我想在给定的时间跨度内自动播放剪辑路径显示滑块