소프트웨어 개발자/좋은 API, DB 설계하기

[좋은 API 설계하기] 조회 한 데이터 없음 - 상태코드 200?

yubi5050 2024. 1. 31. 00:43

조회 한 데이터 없음 

데이터 조회 요청시, 요청 한 데이터가 없을 경우 다음과 같이 처리 할 수 있다.

 

1) 200 + 빈 리스트

- 올바른 경로로 호출하여 200 응답, 하지만 데이터는 없으므로 빈 값, 빈 리스트 반환

 

2) 특정 에러 코드 (ex. 4001, 34011)

- 데이터가 없음을 특정 에러로 규정하여 에러 코드로 응답

 

404 에 대한 이해

사실 조회 데이터가 없음은 404 개념에 해당되는 것 같지만, 클라이언트와 서버는 404 개념에 대해 받아 들이는 것에 차이가 존재한다.

  • 클라이언트 : 잘못된 "경로" 접근
  • 서버 : "리소스" 존재 X 

 

404에 대해 좀더 살펴 보면, 404는 여러 가지 기술적인 이유로 발생할 수 있다.

  • 서버에서 애플리케이션이 일시적으로 비활성화되거나 제거됨
  • 프록시 연결 문제 등이 발생
  • 조회 요청 한 데이터가 없음

 

결론

클라이언트 입장에서는 상태 코드만으로

"요청한 데이터가 존재하지 않습니다"를 의미하는 404 와

"인프라나 서버 등이 잘못되었음"을 의미하는 404를 구분 할 수 없기에

 요청 한 데이터가 없는 것에 대해서 200, 204 등으로 빈 리스트나 빈 문자열로 받는 것을 선호 한다.