Been Validation - HTTP 메시지 컨버터

slee2·2022년 2월 11일
0

@Valid, @ValidatedHttpMessageConverter(@RequestBody)에도 적용할 수 있다.

개발

실행 결과

현재 타입을 String으로 바꾸니 컨트롤러에도 못들어가는 것을 확인할 수 있다. 그 이유는 ItemSaveForm 객체를 만들지 못했기 때문에다.

이 경우는 컨트롤러 호출은 되었고, 검증에 실패해서 나온 오류이다.

API의 경우 3가지가 있다.

  • 성공
  • 실패
  • 검증 오류

이 3가지가 위에 있는 예시이다.

@ModelAttribute vs @RequestBody
@ModelAttribute의 경우 각각의 필드 단위로 세밀하게 적용되기 때문에 타입이 달라도 컨트롤러에서 검증 오류 처리를 할 수 있다.
하지만, @RequestBody의 경우 객체 전체를 한 덩어리로 보기 때문에 필드 중간에 타입이 맞지 않아 JSON 데이터를 객체로 변경하지 못하면 컨트롤러 진행 자체가 되지 않고 예외가 발생한다.

0개의 댓글