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);
}