메서드 핸들러 계약

메서드 핸들러 기준

GET, POST, PUT, PATCH, DELETE 함수가 같은 route.ts에 있어도 읽는 값, 변경 여부, 성공 코드, 실패 코드는 메서드마다 다르게 고정해야 합니다.

1

params 해석

[id] 경로는 context.params.id를 숫자나 UUID로 변환합니다.

params.id
2

body 파싱

쓰기 메서드에서만 request.json()을 읽고 JSON 오류를 처리합니다.

request.json()
3

검증 실패 분리

필수값 누락은 400, 대상 없음은 404로 구분합니다.

400 / 404
4

변경 범위 적용

PUT은 완성 객체, PATCH는 전달된 필드만 반영합니다.

map / update
5

응답 모양 고정

삭제 성공은 204 본문 없음, 생성 성공은 201과 생성 결과를 둡니다.

NextResponse
PUT vs PATCH

전체 교체와 부분 변경을 섞지 않기

PUT 예제에서는 name과 email을 모두 요구하고, PATCH 예제에서는 전달된 필드만 덮어씁니다. 이 차이가 문서화되어야 클라이언트가 안전하게 재시도할 수 있습니다.

{ name, email }
메서드
읽는 값
변경 범위
주의할 실패
GET
params
없음
대상 없음 404
POST
body
새 row 생성
필수값 누락 400
PUT
params + body
전체 교체
400과 404 모두 가능
DELETE
params
삭제
성공 본문 제거 가능