API 공통 응답 객체 만들어보기

2024. 1. 28. 06:36·Spring

API 호출에 대한 공통 응답 객체를 만들어보자

일단 여기서는 JSend를 참고하고 좀 더 간소화해서 만들었다

 

1. 성공 시 JSON

{
  "status": "success",
  "body": {
    "exampleKey": "exampleValue"
  }
}

 

2. 실패 시 JSON

{
    "status": "error",
    "errorMessage": "API 실패 메세지"
}

1. 정의된 API Response에 맞는 응답객체 만들기

 

 

 

 

 

 

2. ExceptionHandler를 통해 에러 발생시 실패 응답 생성

 

 

 

3. ResponseBodyAdvice를 사용해 성공 / 실패 시 응답 객체 생성

 

 

 


 

ErrorResponse 객체를 따로 둔 이유는 위의 예제에서는 그냥 이 글을 쓰기 위해서 errorMessage 하나만을 뒀지만,

더 필요한 부분을 추가할 수도 있다. (ex. 에러코드, 시간정보)

더해서 ErrorResponse뿐만 아니라 ApiResponse에도 각자 상황에 맞게 추가하면 된다.

 

ExceptionHandler에서 각 Exception마다 ResponseStatus를 잘 세팅 해둔다면

이 글처럼 ResponseBodyAdvice에서 body를 타입검사하는게 아니라

response에서 HttpStatus를 확인하여 성공/실패 응답 객체를 만들 수 있다.

근데 이 부분은 좀 그런게, HttpStatus를 잘 정의해두고 사용하는 프로젝트를 만나기가 쉽지않았다. 

 

관련 코드를 확인하려면 밑의 github를 참고

https://github.com/skwzz/MyCubicle/tree/main/common-response

 

'Spring' 카테고리의 다른 글

SpringBoot - Springdoc (swagger) 버전 호환표  (0) 2025.12.10
@Value / @ConfigurationProperties 사용해보기  (0) 2023.04.05
[Spring Batch] 공부 내용 정리 (2)  (0) 2022.05.03
[Spring Batch] 공부 내용 정리 (1)  (0) 2022.04.25
Get방식에서 QueryParameter를 받는 방법  (0) 2021.12.05
'Spring' 카테고리의 다른 글
  • SpringBoot - Springdoc (swagger) 버전 호환표
  • @Value / @ConfigurationProperties 사용해보기
  • [Spring Batch] 공부 내용 정리 (2)
  • [Spring Batch] 공부 내용 정리 (1)
skw
skw
  • skw
    Time to lazy
    skw
  • 전체
    오늘
    어제
    • 분류 전체보기 (66)
      • Java (4)
      • Spring (7)
      • DB (1)
      • Devops (11)
        • AWS (4)
        • Docker (1)
        • etc (6)
      • DevTools (4)
        • IntelliJ IDEA (4)
      • 등등 (2)
      • 알고리즘 (34)
        • 문제 (32)
        • 이론 (2)
      • 일기장 (1)
      • 보물창고아님 비밀창고 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    docker
    AWS
    도커
    http파일
    정렬
    백준
    EC2
    springboot
    무인도 여행
    숫자 변환하기
    BOJ
    NEXUS
    Maven
    sort
    repository url
    뒤에있는큰수찾기
    IntelliJ
    프로그래머스
    그리디
    인텔리제이
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
skw
API 공통 응답 객체 만들어보기
상단으로

티스토리툴바