我想知道是否有一种方法可以使OpenApi生成的类显示其正确的日期和时间格式。我读了一些关于这方面的主题,没有一个有帮助。以下是build.gradle的示例:
configOptions.set([
dateLibrary : "java8",
])
library.set("jersey2")
typeMappings.set([
ZonedDateTime: ZonedDateTime,
LocalDateTime: LocalDateTime,
])
importMappings.set([
ZonedDateTime: "java.time.ZonedDateTime",
LocalDateTime: "java.time.LocalDateTime",
])
问题是,这将在OffsetDateTime中生成所有日期时间格式。我在typeMappings中这样做了:偏移日期时间:java.time.ZonedDateTime。这迫使所有内容都在ZonedDateTime中生成。有没有一种方法可以有多个日期和时间格式?我想有ZonedDateTime,LocalDateTime等等。还尝试设置dateLibrary:“自定义”和创建Map我自己,没有工作以及。
1条答案
按热度按时间xxls0lw81#
这可以通过定义自己的格式来完成。假设我们有以下模式
生成器将生成这些中的每一个作为
OffsetDateTime
。当你改变你的typeMappings
时,你就走上了正确的道路。但是,正如你所注意到的,这是一个全球性的变化。根据swagger文档:
format是一个开放值,因此您可以使用任何格式,即使不是OpenAPI规范定义的格式
因此,解决这个问题的最佳方法是将上述模式更改为使用如下自定义格式值:
现在,您可以按如下方式更改
typeMappings
和importMappings
这应该能满足你的需要