WooSeob / baemin-mate

어플리케이션 '같이하실' 서버입니다.
3 stars 1 forks source link

비즈니스 로직 에러 발생 시 http status code 변경 및 response body 스키마 변경 #47

Closed WooSeob closed 2 years ago

WooSeob commented 2 years ago

해당 API

변경 내용

  1. 비즈니스 로직 예외가 발생한 경우 기존에 http status code 400(bad request)로 응답하던 것에서 409(conflict)로 응답하는것으로 수정
  2. http status code 별 response body 스키마 변경

400 으로 응답하는 경우의 response body

{
  statusCode : int
  message : string[]
  error : string
}
필드 타입 설명
statusCode int http 에러 코드
message string[] 어떤 부분에서 에러가 발생했는지 설명해주는 문자열 배열
error string 에러에 대한 설명

409 로 응답하는 경우의 response body

{
  errorCode : string
  message : string[]
}
필드 타입 설명
errorCode string 비즈니스 로직 중 어떤 예외가 발생했는지 나타내는 에러 코드. 코드 목록
message string[] 에떤 부분에서 에러가 발생했는지 설명해주는 문자열 배열

사유

  1. http status code 400 은 리퀘스트 메시지가 잘못된것으로, 비즈니스 로직에 위배되는 상황을 400으로 응답하는것은 직관적이지 않은 설계라고 판단함
  2. 추후 클라이언트에서 비즈니스 로직 에러 케이스별로 후속처리를 할 것을 염두에 두어 각 상황을 errorCode로 분류해 두었는데, 이러한 필드는 비즈니스 로직 에러 상황 외의 오류(400, 401, 403, 404 등등) 에는 필요 없음 (http code 자체로 어떤 상황인지 분류할 수 있기 때문) 따라서 response body 스키마를 나누기 위해서status code 분리가 필요함