본문 바로가기

[RESTful방식 구현] #2 Custom Exception과 Validation 처리

I'm 영서 2021. 2. 17.
반응형

사용자가 입력한 데이터에 대해 유효성을 확인하기 위한 Validation

 

JDK에 포함된 Validation API와 Hibernate Validation 기능을 사용

 

Hibernate 는 데이터 베이스와 관련된 어플리케이션을 개발하기위해 사용하는 API로서

자바의 객체와 데이터베이스의 엔티티와 매핑해주기 위한 Framework이다.

 

아무튼..

 

Javax.validation의 dependency를 pom.xml에 추가해준다.

 

Spring boot가 최신버전의 경우 Spring-boot-starter-test에 포함되어있지 않기 때문에 직접 입력해서 추가해야 한다. 추가후에 maven에서 reload해줘야 다운로드해줌

 

User 객체에 @Size Annotation과 @Past Annotation을 사용해서 간단한 유효값 처리를 한후 

그후 createUser의 parameter에 @Vaild Annotation 추가

이제 사용자에 의해 POST 방식으로 /users를 수행시키면 전달받은 user값을 validation 처리를 해준다!

 

name의 최소 사이즈가 2로 Validation처리를 해뒀고 이때 실행시키면
이렇게 Bed Request 가 뜬다

400번대는 Client에서의 문제인 경우!

 

추가로 결과값 Body에 Error 코드를 띄워주기 위한 Exception을 재정의 해주기로 결정

 

ExceptionResponse라는 클래스 생성후

 

CoustomizedResponseEntityException이라는 클래스를 추가한다 

해당 클래스에서 ExceptionHandler로 해당 Exception이 발생했을때의 Costom 로직을 처리한다

이때 UserNotFoundException 과 같이 CostomException을 생성하려면 해당 클래스를 작성후 에러메시지를 함께 전송하여 해당 에러 발생시 ExceptionResponse가 출력되도록 하면 된다!

 

아무튼 재정의한 ArgumentNotValid는 해당 Exception 발생시 작성한 Exception에 의해 값이 출력된다.

 

다음은 다국어 처리..

반응형

댓글