본문 바로가기

프로그래밍/Spring Boot 프로젝트

항공사 플랫폼 팀 프로젝트_RestApiController 사용법

RestApiController 사용법 

: apiController를 타서 ajax 통신 함 
 

항공사 플랫폼 팀 프로젝트를 진행하며 RouteService에 노선이 없으면
NullPointerException이 발생하는 오류를 수정했습니다.

 
 

handler 패키지 > exception 패키지 > ExceptionFieldMessage.java

1
2
3
4
5
6
7
8
9
10
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ExceptionFieldMessage {
 
    private String field;
    private String message;
    
}
cs

 
 

handler 패키지 > exception 패키지 > ApiErrorResponse.java

1
2
3
4
5
6
7
8
9
10
11
12
13
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ApiErrorResponse {
 
    private int statusCode;
    private String code;
    private String message;
    private String resultCode;
    private List<ExceptionFieldMessage> exceptionFieldMessage;
 
}
cs

 
 

handler 패키지 > RestfullExceptionHandler.java
→ NullPointerException이 발생되면 자동으로 이 예외처리를 탄다. 

1
2
3
4
5
6
7
8
9
10
// valid 처리 관련 예외 처리
@ExceptionHandler(value = NullPointerException.class)
public ApiErrorResponse nullPointerException(NullPointerException e) {
 
    List<ExceptionFieldMessage> errorList = new ArrayList<>();
    
    return ApiErrorResponse.builder().statusCode(HttpStatus.BAD_REQUEST.value()).code("-1")
        .resultCode("fail").message("잘못된 요청입니다.").exceptionFiledMessages(errorList).build();
 
}
cs

 
 

js 코드 (통신 성공 → done 부분에서 처리)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
.done(function(data) {
    console.log(data);
    
    if(data.statusCode == 400) {
        alert("노선 정보가 없습니다.");
        window.location.reload();
    } else {
        // 통신 성공시 실행할 코드
        
        let destinationResId = $("#destination--res--id");
        
        for(let i = 0; i < data.length; i++) {
            let imgNode = $("");
            imgNode.attr("src""/images/in_flight/" + data[i].detailImage);
            destinationResId.append(data[i].name);
            destinationResId.append(imgNode);
            destinationResId.append(data[i].description);
        }
    }
});
cs