如何使用 openapi-generator-maven-plugin 仅更改一个字段的类型?
How to change the type for only one field using the openapi-generator-maven-plugin?
我有一个描述我从 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"
}
默认情况下,打开 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 替换为 LocalDateTime 只有 date1
?
这就是我想在生成的 class:
中看到的内容
@JsonProperty("date1")
private LocalDateTime date1;
@JsonProperty("date2")
private OffsetDateTime date2;
我知道我可以修复生成的class并将OffsetDateTime替换为LocalDateTime,但我不想在生成后每次都更改生成的class。
提前致谢。
这是我最终得出的解决方案。
我正在使用 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>
不是很优雅,但很管用)
我有一个描述我从 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"
}
默认情况下,打开 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 替换为 LocalDateTime 只有 date1
?
这就是我想在生成的 class:
中看到的内容 @JsonProperty("date1")
private LocalDateTime date1;
@JsonProperty("date2")
private OffsetDateTime date2;
我知道我可以修复生成的class并将OffsetDateTime替换为LocalDateTime,但我不想在生成后每次都更改生成的class。
提前致谢。
这是我最终得出的解决方案。 我正在使用 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>
不是很优雅,但很管用)