簡體   English   中英

Java springdoc-openapi 在 Swagger UI 示例值中顯示帶有附加日期/時間字段的 LocalDateTime 字段

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM