0

When I use org.springdoc:springdoc-openapi-spring-boot-2-webflux:3.1.5to build reactive api.

I got following error:

Caused by: java.time.format.DateTimeParseException: Text '2021-03-24' could not be parsed at index 4

Sample Code:

  • Controller
@RestController
public class Controller {
  @GetMapping(path = "/test")
  public Mono<String> test(@Valid TaskCriteria taskCriteria) {
    Mono.just("Subscribe completed, criteria: " + taskCriteria.toString());
  }
}
  • Model
@Data
@AllArgsConstructor
@Schema(description = "Task matching criteria", name = "TaskCriteria")
@ParameterObject
public class TaskCriteria {

  @Parameter(description = "Date to run, using ISO-8601 format yyyy-MM-dd")
  @Schema(required = true, type = "string", format = "date", example = "2021-03-25")
  @NotNull
  private LocalDate date;

}
  • Springboot version: 2.3.2.RELEASE
wu tao
  • 3
  • 1

1 Answers1

0

Your problem is that you are using @AllArgsConstructor instead of @NoArgsConstructor, for jackson!

This is your working sample:

@RestController
public class HelloController {

    @GetMapping(path = "/test")
    public Mono<String> test(@Valid TaskCriteria taskCriteria) {
        return Mono.just("Subscribe completed, criteria: " + taskCriteria.toString());
    }

    @Data
    @NoArgsConstructor
    @Schema(description = "Task matching criteria", name = "TaskCriteria")
    @ParameterObject
    public class TaskCriteria {

        @Parameter(description = "Date to run, using ISO-8601 format yyyy-MM-dd")
        @Schema(required = true, type = "string", format = "date", example = "2021-03-25")
        @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
        @NotNull
        private LocalDate date;

    }

}
brianbro
  • 4,141
  • 2
  • 24
  • 37