프론트와의 데이터를 주고 받는 API를 구현하는 중 다음과 같은 에러를 발견했다.
HttpMessageNotReadableException: JSON parse error ~
문제의 원인은 간단한 곳에 있었다.
프론트에서는 Map<String, List<FrFoodCreateDTO>>
의 형태로 보내주고 있는데 받는 곳에서는 List<FrFoodCreateDTO>
의 형태로 잘못 받고 있어 생긴 문제였다.
다음과 같이 @RequestBody
부분을 고치니 위의 에러가 나오지 않고 정상 작동했다.
바로 다른 문제가 발생했다.
프론트에서 보내주는 JSON 형태의 객체 내에서 boolean 필드가 false로 들어오는 문제다.
위의 조건문에서 true 값으로 프론트에서 보낸 값들이 false로 되어 조건문을 타지 못하였다.
isMixFood
라는 값이 boolean
자료형에서 Boolean
으로 바꾸어 해결하였다.
Lombok
에서 제공하는 @Getter
나 @Setter
어노테이션을 사용할 경우 자동으로 getter/setter
메소드를 생성해주는데, 이때 boolean
타입의 변수에 붙는 prefix
는 get
이 아닌 is
이므로 @RequestBody
에서 찾을 수 없어 바인딩되지 않는 원인이었다.
유익한 글이었습니다.