gpt4 book ai didi

java - 如何设置 swagger 文档以使用 dd/MM/yyyy 格式?

转载 作者:行者123 更新时间:2023-12-05 06:58:13 25 4
gpt4 key购买 nike

我正在使用 spring-boot 和 Swagger 将日期解析为休息服务以记录 api。

在端点上,我只想要没有时间的日期。并且可以通过 @DateTimeFormat(pattern = "dd/MM/yyyy") 轻松实现。请注意,与几个月相比,我更喜欢日子在前。

端点在使用 curl 时工作正常,那么我认为这不是问题所在。例如要设置当年的 11 月 30 日,我可以使用 Curl 调用它,如下所示:

curl -X GET "http://localhost:8085/app/api/endpoint?creationTime=30%2F11%2F2020" -H  "accept: application/json"

并且工作正常。但是,如果我直接使用 Swagger 页面进行测试,我会遇到这些情况:

首先,如果我将日期设置为 2020 年 11 月 30 日,swagger 不允许我继续:

enter image description here

如果我将日期设置为 2020 年 11 月 30 日,swagger 允许我继续,但我收到此错误:

"message": "Failed to convert value of type 'java.lang.String' to required type 'java.util.Date'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [@io.swagger.annotations.ApiParam @org.springframework.web.bind.annotation.RequestParam @org.springframework.format.annotation.DateTimeFormat java.util.Date] for value '11/30/2020'; nested exception is org.joda.time.IllegalFieldValueException: Cannot parse \"11/30/2020\": Value 30 for monthOfYear must be in the range [1,12]",

正如我所说的那样,那是第 30 个月。对我来说很有意义。

如果我设置 05/11/2020,Swagger 允许我发送请求,最终日期是 11 月 5 日,这是我定义的格式。

对我来说,swagger 似乎正在按 MM/dd/yyyy 格式过滤我,而不是使用我在端点上真正定义的 dd/MM/yyyy。是否有任何选项可以将 swagger 验证设置为 dd/MM/yyyy

注意:swagger 版本使用 2.9.2。 Spring-boot 版本 2.1.8.RELEASE

最佳答案

我们可以使用, Swagger ..

birthday:
description: Date of birth
type: date
format: DD/MM/YYYY
example: "30/11/2022"

对于nestjs你可以使用

@ApiProperty({ example: "20-09-2022", type:Date,  default: 'DD/MM/YYYY', format: 'DD/MM/YYYY' })

关于java - 如何设置 swagger 文档以使用 dd/MM/yyyy 格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64684983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com