현재 https://api.jari-bean.com/login/google 엔드포인트에 접근하면 다음과 같은 Response를 받는다.
MDN Web Docs에 따르면 500 Internal Server Error는 아래와 같이 정의할 수 있다.
하이퍼텍스트 전송 프로토콜 (HTTP) 500 Internal Server Error 서버 에러 응답 코드는
요청을 처리하는 과정에서 서버가 예상하지 못한 상황에 놓였다는 것을 나타냅니다.
즉, 현재 서버로 온 요청을 처리하는 과정에서 서버 내부에서 문제가 발생했음을 추축할 수 있다.
요청을 처리하는 과정에서 당연히 문제가 발생하지 않도록 하는 것이 최우선 과제이지만, 모든 문제를 예방할 순 없다.
또한, 클라이언트 측에서는 일관된 Resposne를 받아야지만 원활한 응답 처리를 수행할 수 있다.
따라서 차선책으로 500 Internal Server Error에 대한 예외처리를 수행하여 일정한 응답을 받을 수 있도록 개선해야 한다.
🛠 해결
CustomExceptionHandler
@ExceptionHandler(WebClientResponseException.class)
public ResponseEntity webClientResponseException(WebClientResponseException e) {
log.error(e.getMessage());
return new ResponseEntity<>(new ResponseDto<>(-1, e.getMessage(), "외부 API 요청에서 문제가 발생하였습니다."), HttpStatus.INTERNAL_SERVER_ERROR);
}
@ExceptionHandler(InternalServerError.class)
public ResponseEntity internalServerError(InternalServerError e) {
log.error(e.getMessage());
return new ResponseEntity<>(new ResponseDto<>(-1, e.getMessage(), "서버 처리 과정에서 문제가 발생하였습니다."), HttpStatus.INTERNAL_SERVER_ERROR);
}
외부 API 요청시 오류가 발생할 경우 WebClientResponseException 오류에 대한 예외처리
🔥 발생한 문제
현재
https://api.jari-bean.com/login/google
엔드포인트에 접근하면 다음과 같은 Response를 받는다.MDN Web Docs에 따르면 500 Internal Server Error는 아래와 같이 정의할 수 있다.
즉, 현재 서버로 온 요청을 처리하는 과정에서 서버 내부에서 문제가 발생했음을 추축할 수 있다.
요청을 처리하는 과정에서 당연히 문제가 발생하지 않도록 하는 것이 최우선 과제이지만, 모든 문제를 예방할 순 없다. 또한, 클라이언트 측에서는 일관된 Resposne를 받아야지만 원활한 응답 처리를 수행할 수 있다.
따라서 차선책으로
500 Internal Server Error
에 대한 예외처리를 수행하여 일정한 응답을 받을 수 있도록 개선해야 한다.🛠 해결
CustomExceptionHandler
WebClientResponseException
오류에 대한 예외처리InternalServerError
예외처리