같은 자원, 다른 메서드: [id] 라우트 CRUD 매핑
동적 세그먼트는 자원을 고르고, HTTP 메서드는 그 자원에 수행할 작업을 결정한다.
컬렉션 자원
/api/posts
id가 있으면
단건 자원
단건 자원
동적 자원
/api/posts/[id]
메서드
컬렉션
/api/posts/[id]
상태
GET
목록 조회query로 필터와 페이지 지정
단건 조회id로 레코드 선택
200 / 404존재 여부 분리
POST
새 글 생성body 검증 뒤 insert
사용 안 함id는 서버가 발급
201Location 또는 id 반환
PATCH
대상 없음컬렉션 전체 수정 금지
부분 수정허용 필드만 갱신
200 / 400검증 실패 구분
DELETE
대상 없음대량 삭제는 별도 설계
단건 삭제id로 삭제 대상 확정
204 / 404본문 없이 종료
id는 선택자가 아니다라우트 경계에서 자원 식별자로 먼저 검증한다.
method가 작업을 정한다URL에 update/delete 동사를 덧붙이지 않는다.
405는 계약의 일부허용하지 않는 메서드는 Allow 헤더와 함께 막는다.