Web Basic · REST

REST 리소스를 명사와 상태 코드로 설계하기

RESTful API 설계는 URL 모양을 예쁘게 만드는 일이 아니라, 리소스와 HTTP method, 상태 코드가 같은 의미를 갖도록 맞추는 일이다.

01

리소스 모델링

동사형 작업보다 클라이언트가 다룰 대상을 먼저 정의한다.

02

메서드 매핑

조회, 생성, 수정, 삭제의 의미를 HTTP method에 맞춘다.

03

오류 설계

validation, not found, conflict, forbidden을 다른 코드와 본문으로 표현한다.

04

확장

pagination, filtering, versioning을 초기에 계약에 포함한다.

/users
컬렉션 목록 조회와 생성 대상
필터는 query
/users/{id}
단일 리소스 조회, 수정, 삭제 대상
없는 id는 404
201
생성 성공 새 리소스와 Location header를 줄 수 있음
POST 성공
409
상태 충돌 중복 이메일, 버전 충돌처럼 현재 상태와 충돌
400과 구분

명사 URL · 상태 코드 · 목록 점검

명사 URL endpoint가 action보다 resource 중심이다.
상태 코드 클라이언트가 실패 종류를 기계적으로 구분할 수 있다.
목록 pagination과 정렬 기준이 있다.
호환성 필드 제거와 의미 변경은 버전 전략을 거친다.