REST Pattern

REST API 상태 코드는 리소스 변화와 응답 본문을 함께 표현한다

CRUD에 상태 코드를 기계적으로 붙이지 말고, 리소스가 새로 생겼는지, 처리가 비동기인지, 응답 본문이 필요한지를 함께 봐야 한다.

생성 성공은 201 Created와 Location이 자연스럽다
본문 없는 성공은 204 No Content로 표현한다
비동기 접수는 202 Accepted로 완료와 구분한다
Read

GET /items/1

200 OK표현 본문을 함께 돌려준다. 없으면 404 또는 상황에 따라 410.
Create

POST /items

201 Created새 URI가 있으면 Location 헤더로 알려준다.
Async

POST /jobs

202 Accepted요청을 접수했지만 처리는 아직 끝나지 않았음을 나타낸다.
Conflict

PUT /items/1

409 / 412현재 리소스 상태나 조건부 요청이 맞지 않으면 성공과 분리한다.

계약: 형식 오류는 400, 의미 검증 실패는 API 관례에 따라 422, 충돌은 409처럼 클라이언트 행동이 달라지는 지점을 분리한다.