728x90
반응형
현상
1. Cannot deserialize instance of...
2. Leading zeroes not allowed...
원인
1. (Swagger에서) 파라미터 값을 잘못 입력하여 Java 가 해당 값들을 제대로 파싱하지 못하는 경우
2. (Swagger에서) 파라미터 값으로 날짜를 입력할 때, 0을 앞에 붙인 경우. 예를 들어 2020-08-23으로 입력 (2020-8-23으로 입력해야함)
해결
선제조건
기본적으로 파라미터의 @Schema 정의 시에, example 부분을 안적으면 Swagger의 입력화면에서 자동으로 입력 양식을 잡아준다.
컨트롤러에서 파라미터 부분에 @RequestBody 어노테이션을 붙여준 경우이다.
파라미터로 날짜를 정의할 때, @DateTimeFormat으로 날짜 형식을 정해준 경우이다.
Swagger 에서 아래와 같은 양식으로 입력해주어야 한다.(Swagger 3.0)
1 : 전체는 중괄호 {} 로 감싸지고, key 값은 " "으로 감싼다.
2 : 내부에 있는 값도 key값만 " "로 감싼다.
3 : list의 경우 대괄호 []로 감싼다. 날짜는 연월일을 ,로 구분한다. 월 앞에 0을 붙이면 안된다. 08(x), 8(o)
4. 다른 필드명은 , 후에 같은 방식으로 작성한다.
728x90
반응형