한줄 정리
PUT -> 전체 업데이트 -> "새로운 걸로 덮어씌운다"
PATCH -> 부분 업데이트 -> "일부 필드만 고친다"
PUT
- 특징
- 전체 리소스를 수정 (덮어쓰기)
- 요청 데이터 : 전체 데이터를 포함
- 멱등성 보장 -> 같은 요청 여러 번 보낼 경우 결과 동일
- 사용 예시
- 회원 정보 수정 (전체 데이터 업데이트) PUT /users/1 + {전체 유저 정보}
- 코드
- 회원 정보를 수정할 때 전체 데이터를 전송해야 함
- 기존 데이터가 통째로 바뀌기 때문에 없으면 null 처리됨
PUT /users/1
Content-Type: application/json
{
"name": "Dengju",
"email": "dengju@test.com",
"phone": "010-1234-5678"
}
PATCH
- 특징
- 일부 필드만 수정
- 요청 데이터 : 수정할 필드만 포함
- 멱등성 보장 X (동작 방식에 따라 다름)
- 사용 예시
- 프로필 이미지 변경, 특정 필드만 수정 PATCH /users/1 + {수정할 필드만}
- 코드
- 특정 필드만 수정할 때 변경할 데이터만 전송
- 기존 데이터 중 보낸 필드만 변경됨 (다른 필드는 유지)
PATCH /users/1
Content-Type: application/json
{
"phone": "010-9999-8888"
}