200 OK표현 본문을 함께 돌려준다. 없으면 404 또는 상황에 따라 410.
CRUD에 상태 코드를 기계적으로 붙이지 말고, 리소스가 새로 생겼는지, 본문이 필요한지, 처리가 끝났는지까지 같이 본다.
200 OK표현 본문을 함께 돌려준다. 없으면 404 또는 상황에 따라 410.
201 Created새 URI가 있으면 Location 헤더로 알려준다.
202 Accepted접수됐지만 처리는 아직 끝나지 않았다.
409 / 412현재 리소스 상태나 조건부 요청이 맞지 않는다.
| 상황 | 권장 표현 | 잘못 고르면 생기는 문제 |
|---|---|---|
| 생성이 완료됨 | 201 Created + Location | 클라이언트가 새 리소스 위치를 모른다. |
| 본문이 없음 | 204 No Content | 빈 본문을 성공 데이터로 오해할 수 있다. |
| 비동기 처리 | 202 Accepted + 상태 조회 URI | 처리가 끝난 것으로 착각한다. |
| 검증 실패 | 400 / 422 | 클라이언트가 재시도할지 수정할지 헷갈린다. |
계약: 상태 코드는 API 문서의 일부다. 같은 실패를 항상 같은 코드와 본문 형식으로 돌려줘야 클라이언트가 안정적으로 동작한다.