【问题标题】:Spring Boot Open Api Request LocalTimeSpring Boot Open Api 请求 LocalTime
【发布时间】:2021-04-25 20:43:44
【问题描述】:

我使用 Spring Boot 2.4.5,springdoc-openapi-ui 1.5.7,

我的实体有字段:

private LocalDate beginDate;
private LocalTime beginTime;

请求正文

此选项无效

{
"beginDate": "2021-04-25",
  "beginTime": {
    "hour": 0,
    "minute": 0,
    "second": 0,
    "nano": 0
}

还有这个工人

{
"beginDate": "2021-04-25",
"beginTime": "00:00:00"
}

我尝试了各种字段注释和添加依赖项,但出现 400 或 500 错误。

我看到了两种可能的解决方案:

  1. 配置 Swagger 中的架构显示“00:00:00”
  2. 正确处理带有绘制组件的 json

提前感谢您的帮助!

【问题讨论】:

    标签: spring-boot swagger localtime springdoc-openapi-ui


    【解决方案1】:

    那是因为您需要定义一个反序列化器,以便在传递 4 个字段(小时/分钟/秒/纳米)而不是单个字符串字段时可以正确处理您的请求。

    @JsonDeserialize(using = LocalTimeDeserializer.class)
    private LocalTime beginTime;
    

    您可能还想在编写反序列化类时考虑在 ObjectMapper 上使用此功能。

    ObjectMapper mapper = new ObjectMapper();
    mapper.registerModule(new JavaTimeModule());
    

    【讨论】:

      猜你喜欢
      • 2016-04-23
      • 2020-07-12
      • 2018-09-11
      • 2021-09-22
      • 1970-01-01
      • 2018-04-13
      • 2018-05-18
      • 2019-11-25
      • 1970-01-01
      相关资源
      最近更新 更多