[英]Java springdoc-openapi show LocalDateTime field with additional date/time fields in Swagger UI Example Value
spring-boot 2.6.2
springdoc-openapi 1.6.2
正文中的單個字段LocalDateTime dateTime
時間在 Swagger UI 示例中表示為
{
"dateTime": "2022-01-21T10:02:46.481Z",
"time": {
"hour": 0,
"minute": 0,
"second": 0,
"nano": 0
},
"date": "2022-01-21"
}
日期格式可以通過以下方式固定( https://ru.stackoverflow.com/a/1276885/209226 )
static {
var schema = new Schema<LocalTime>();
schema.example(LocalTime.now().format(DateTimeFormatter.ISO_TIME));
SpringDocUtils.getConfig().replaceWithSchema(LocalTime.class, schema);
}
但它仍然保留 3 個字段 iso 一個dateTime
:
{
"dateTime": "2022-01-21T10:05:52.945Z",
"time": "13:05:14.746",
"date": "2022-01-21"
}
如何修復?
如果你想要一個更好的表示,你需要添加一個類型,在我的例子中是字符串。 請參閱文檔( https://swagger.io/specification/ )
static {
var schema = new Schema<LocalTime>();
schema.example(LocalTime.now().format(DateTimeFormatter.ofPattern("HH:mm:ss"))).type("string");
SpringDocUtils.getConfig().replaceWithSchema(LocalTime.class, schema);
}
對於 Kotlin 開發人員:
@Configuration
open class SwaggerConfig{
init {
val schema: Schema<LocalDateTime> = Schema<LocalDateTime>()
schema.example(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))
SpringDocUtils.getConfig().replaceWithSchema(LocalDateTime::class.java, schema)
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.