우선, PUT과 PATCH는 둘 다 데이터를 UPDATE하는 HTTP Method이다!
하지만
PUT같은 경우는 모든 데이터(리소스)를 업데이트하고,
PATCH는 요청한 데이터(리소스)만 업데이트한다.
그래서 PUT요청 시, 담지않은 값은 NULL로 저장되고, PATCH요청 시에는 담지않은 값은 그냥 넘어간다.
정리
PUT : 리소스의 모든 것을 업데이트 한다.
PATCH : 리소스의 일부를 업데이트 한다.
예시
아래와 같은 회원이라는 리소스가 있다.
회원 (member) | 1 |
이름 (name) | 애용이 |
나이 (age) | 10 |
성별 (gender) | M |
아래와 같은 요청을 보내면
PUT /members/1
{
name : "홍길동",
age : 19,
gender : "M"
}
회원 (member) | 1 |
이름 (name) | 홍길동 |
나이 (age) | 19 |
성별 (gender) | M |
위와 같이 변한다.
이번에는 나이와 성별를 빼고 요청을 보내면
PUT /members/1
{
name : "김길순"
}
회원 (member) | 1 |
이름 (name) | 김길순 |
나이 (age) | |
성별 (gender) |
보내지지 않은 값에 대해서는 null 값으로 변하는 것이다.
다시 아래와 같은 회원이라는 리소스가 있다.
회원 (member) | 1 |
이름 (name) | 애용이 |
나이 (age) | 10 |
성별 (gender) | M |
아래와 같은 요청을 보냈을때
PATCH /members/1
{
name : "김길순"
}
회원 (member) | 1 |
이름 (name) | 김길순 |
나이 (age) | 10 |
성별 (gender) | M |
요청에 포함되어 있는 부분만 변경이 된다는 차이점이 있다.
'Spring' 카테고리의 다른 글
Spring. DI / IOC / Bean 이란? (0) | 2022.10.06 |
---|---|
RESTful의 의미, REST API의 구성요소 및 설계규칙 (0) | 2022.10.06 |
Spring Controller / Service / Repository란? (0) | 2022.10.05 |
JPA란? (1) | 2022.10.05 |
getter / setter 사용이유 (0) | 2022.08.15 |
댓글