Programming/Spring
Spring(12) - REST API3: Status Code 사용하기
코딩하는 포메라니안
2022. 6. 9. 00:22
STATUS CODE에는 1XX ~ 5XX까지 다양하게 있다. 이때, 발생되는 error에 따라 다른 작업을 처리하도록 할 수 있다.
주로, error 종류에 따라 다른 페이지를 띄우기 위해 사용된다.
1. 응답에 따라 처리할 로직 구현
아래 예시에서는 500 Error일 경우, 받아온 메시지를 띄우고, 404 Error인 경우 페이지가 없다는 알림을 띄우도록 했다.
$.ajax({
url:'${root}/user/list',
type: 'GET',
contentType:'application/json;charset=utf-8',
dataType:'json',
success: function(data){
makeList(data);
},
error: function(xhr, status, error){
console.log("상태값 : " + xhr.status + "\tHttp 에러메시지 : " + xhr.responseText);
},
statusCode: {
500: function(msg){
alert(msg.responseText);
//location.href="/error/e500";
},
404: function(){
alert("페이지 없음");
}
}
});
2. 응답코드 보내기
성공하면 OK(200)을 보낸다. 여기서는 테스트를 위해 500 Error를 발생시켜보았다.
@GetMapping("/list")
public @ResponseBody ResponseEntity<?> list() {
List<UserDto> users = null;
try {
users = userService.listUser();
} catch (Exception e) {
e.printStackTrace();
}
//test code
users = null;
if(users==null) {
return new ResponseEntity<String>("에러발생!", HttpStatus.INTERNAL_SERVER_ERROR);
}
return new ResponseEntity<List<UserDto>>(users, HttpStatus.OK);
}