ApiResponse

워니·2024년 6월 30일

컨트롤러에서 이벤트 목록을 조회하는 코드는 다음과 같이 작성되었다

/*
    * 이벤트 목록
    */
    @GetMapping
    public ApiResponse<List<Event>> getEvents(Pageable pageable) {
        final List<Event> events = eventService.getEvents(pageable);
        return ApiResponse.isOk(getEventsResponse.from(events));
    }

여기서 ApiResponse.java는 다음과 같다.

@Getter
public class ApiResponse<T> {

    private int httpStatus;
    private T data;

    public ApiResponse(int httpStatus, T data) {
        this.httpStatus = httpStatus;
        this.data = data;
    }

    public static <T> ApiResponse<T> isOk(T data) {
        return new ApiResponse<>(HttpStatus.OK.value(), data);
    }
}

ApiResponse 클래스 사용 이유

주로 RESTful 아키텍처에서 사용되는데 프레젠테이션 계층에서 클라이언트에게 일관된 응답을 제공하는 역할을 한다.

사용 이유

  • 일관성 유지: 모든 API 응답을 동일한 형식으로 제공하여 클라이언트가 예측 가능하게 응답을 처리할 수 있도록 합니다.
  • 에러 처리: 성공 및 실패 응답을 일관되게 처리하고, HTTP 상태 코드를 명확하게 전달합니다.
  • 유지보수 용이성: 표준화된 응답 구조를 사용하면 코드의 가독성이 향상되고, 유지보수가 쉬워집니다.
  • 보안: 데이터와 상태 코드를 일관되게 관리하여 불필요한 정보 노출을 방지할 수 있습니다.
profile
매일, 조금씩 나아가는중

0개의 댓글