인프런 커뮤니티 질문&답변

박준형님의 프로필 이미지
박준형

작성한 질문수

Practical Testing: 실용적인 테스트 가이드

Presentation Layer 테스트 (2)

ApiResponse에 대해 질문있습니다.

작성

·

251

0

  • 학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!

  • 먼저 유사한 질문이 있었는지 검색해 보세요.

  • 서로 예의를 지키며 존중하는 문화를 만들어가요.

     

 ApiResponse클래스에 HttpStatus와 code를 같이 보내게 되는데 사실 ResponseEntity.ok().body(ApiResponse~~~)
이런 식으로 보내게 된다면 httpstatus가 HTTP 메시지의 바디에도 있고 헤더에도 있게 되는데 굳이 바디에 한 번 더 보내시는 이유가 있으신가요??
실무에서는 어떻게 하시는 지 궁금합니다.

답변 2

1

박우빈님의 프로필 이미지
박우빈
지식공유자

안녕하세요, 박준형 님!

맞습니다. 사실 ApiResponse라는 것은, custom한 영역이기에 반드시 제가 제시한 스펙으로 만들어야 한다는 의미는 아닙니다.

ApiResponse를 정의하는 일은, 온전히 해당 API를 받아서 사용하는 클라이언트 측과 논의가 필요한 영역인데요.
실무에서는 클라이언트(프론트엔드) 개발자와 논의하여 상호 간의 필요한 스펙을 정해서, 이를 응답 형태로 구성하는 식으로 진행합니다.
마찬가지로 논의 과정을 통해 별도의 ApiResponse 없이 순수한 응답 데이터만 보내도록 구성할 수도 있습니다. (이런 경우 예외 상황에서는 예외를 위한 응답 스펙을 따로 두기도 합니다. ex. Spring 6의 ProblemDetail)

보통은 새로 만드는 시스템이 아닌 이상, 기존에 사용하던 스펙이 있기 때문에 팀에 합류하시면 해당 팀의 정책을 따르시면 됩니다.

(cf. HttpStatus를 추가한 것은 단순히 사용하는 쪽에서 헤더를 굳이 체크하지 않아도 바디에서 상태값을 확인할 수 있기 때문이에요. 앞서 말씀드렸듯 필수적인 것은 아닙니다.)

도움이 되셨기를 바랍니다.
감사합니다. 🙂

0

박준형님의 프로필 이미지
박준형
질문자

답변 감사합니다 ㅎㅎㅎ

박준형님의 프로필 이미지
박준형

작성한 질문수

질문하기