RestTemplate 예외 처리

J_Eddy·2022년 3월 13일
0

RestTemplate 예외처리

API를 이용하여 통신 하는 과정에서 404에러가 발생했을 때 제대로 response처리를 하지 못하고 에러를 발생하는 모습이 보여서 해당 과정을 예외처리 하고자 하였다.

이전 API 참고

이전에 프로젝트 했을 당시 RestTemplate를 사용하여 API통신을 했던 경험이 있었다. 그 때 당시에도 해당 API에서 결과값이 없을 때 처리했던 기억이 있어서 그 API를 다시 분석 하였다.

"header": {
	"resultCode": 0,
	"resultMessage": "SUCCESS"
},
"data": {
	...
}

위와 같은 형식으로 API Response가 구성되었고 해당 Header에 있는 resultCoderesultMessage를 분기로 성공과 실패를 나누었다.

하지만 새로운 API의 response는 resultCode와 같은 응답관련 정보가 없이 body만 오는 구조였다.

그래서 실패했을 때는 body가 빈 상태로 오겠지 라는 생각으로 (1차원적인 생각...) 코드를 구현했는데 역시 에러가 발생하였고, 실패했을 때의 response를 보니 성공했을 때와는 다른구조로 응답을 보냈다.

그래서 이 부분은 단순 분기 처리로 해결할 수 없다고 판단하여 RestTemplate에서 에러를 처리하자 라고 생각하여 해당 부분을 검색하였다.

검색해보니 ResponseErrorHandler이라는 인터페이스가 있어 이 인터페이스를 이용하여 RestTemplateResponseErrorHandler를 구현하였다.

해당 인터페이스를 이용하여 RestTemplateResponseErrorHandler를 아래와 같이 구현 하였다.

해당 에러가 발생하면 RestTemplateResponseErrorHandler를 타도록 설정 하였다. 이후 ajax로 데이터 처리를 하여 '조회된 값이 없습니다'라는 문구 생성완료.

profile
논리적으로 사고하고 해결하는 것을 좋아하는 개발자입니다.

0개의 댓글