簡體   English   中英

如何在 Swagger 2.x 中使用 java.time.Instant?

[英]How to use java.time.Instant with Swagger 2.x?

我的 java webapp 中有一個 REST 端點,它接受 Instant 作為查詢參數,如下面的代碼所示

@GET
@Produces(MediaType.APPLICATION_JSON)
Response getHistory(
    @QueryParam("beforeTime")
    Instant beforeTime,

    @QueryParam("afterTime")
    Instant afterTime) {
    ...
}

這在 swagger 1.x 下運行良好,但是當我們切換到 swagger 2.x 時, Instant的對象顯示為$int64而不是日期時間字段。 我可以用 swagger 注釋做什么來讓它工作?

我能夠使用 @ApiParam 注釋來解決這個問題。 將類型設置為date-time並將格式設置為java.time.Instant解決了該問題。

@GET
@Produces(MediaType.APPLICATION_JSON)
Response getHistory(
    @QueryParam("beforeTime")
    @ApiParam(type="date-time", format = "java.time.Instant")
    Instant beforeTime,

    @QueryParam("afterTime")
    @ApiParam(type="date-time", format = "java.time.Instant")
    Instant afterTime) {
    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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