我有一个模式来描述我从REST服务中获得的数据。我不能改变这个计划。架构中有两个具有不同格式的date-time类型字段:
"date1": {
"type": "string",
"description": "Date 1",
"format": "date-time"
},
"date2": {
"type": "string",
"description": "Date 2",
"format": "date-time"
}{
"date1": "2021-07-29T03:00:00",
"date2": "2021-04-22T08:25:30.264Z"
}默认情况下,open api-generator-maven-plugin为date-time类型字段创建OffsetDateTime类型:
@JsonProperty("date1")
private OffsetDateTime date1;
@JsonProperty("date2")
private OffsetDateTime date2;使用typeMappings和importMappings,我可以将OffsetDateTime替换为LocalDateTime:
<typeMappings>
<typeMapping>OffsetDateTime=LocalDateTime</typeMapping>
</typeMappings>
<importMappings>
<importMapping>java.time.OffsetDateTime=java.time.LocalDateTime</importMapping>
</importMappings>但是这种替换将发生在所有字段中:
@JsonProperty("date1")
private LocalDateTime date1;
@JsonProperty("date2")
private LocalDateTime date2;有没有办法将OffsetDateTime替换为仅适用于date1的LocalDateTime?
这就是我希望在生成的类中看到的:
@JsonProperty("date1")
private LocalDateTime date1;
@JsonProperty("date2")
private OffsetDateTime date2;我知道我可以修复生成的类并用LocalDateTime替换OffsetDateTime,但我不想在生成之后每次都更改生成的类。
提前谢谢。
发布于 2021-11-10 07:28:27
这是我最终得到的解决方案。我使用maven-replacer-plugin将OffsetDateTime替换为LocalDateTime:
<replacements>
<replacement>
<token>import java.time.OffsetDateTime;</token>
<value>import java.time.OffsetDateTime;\nimport java.time.LocalDateTime;</value>
</replacement>
<replacement>
<token>OffsetDateTime date1</token>
<value>LocalDateTime date1</value>
</replacement>
</replacements>不是很优雅,但它是有效的)
https://stackoverflow.com/questions/69879321
复制相似问题