Spring

restAPI의 PUT / PATCH 차이점

리승우 2022. 10. 6. 14:49

우선, 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

 

요청에 포함되어 있는 부분만 변경이 된다는 차이점이 있다.