코딩조각

[java]PUT PATCH 의 차이점

밍튜 2022. 7. 26. 14:31

 

내가 알기로 PUT은 POST GET과같이 API기능중 하나로

데이터의 내용을 '수정'할때 쓰는 기능이라고 알고있었다

 

PATCH도 찾아보니 API의 기능인데 이것도 데이터를 '수정'할때 쓴다고한다

 

둘다 '수정'인데 그럼 무슨차이가 있는거지?????

 

PUT과 PATCH의 차이

일단 다음표를 보면 

  PUT PUT PATCH
원본 {"이름":"명수 , "나이":40}
Before {"이름":"명수 , "나이":40} {"이름":"명수} {"이름":"명수}
After {"이름":"명수 , "나이":40} {"이름":"명수 , "나이":null} {"이름":"명수 , "나이":40}

 

표로만 봐도 한눈에 차이가 나는데

 

PUT은 원래 데이터의 내용인 "이름" 하나만 바꾸기를 요청하면 요청을 안한 "나이"는 마지막에 null이 된다 

 

반면에 PATCH는 데이터의 내용인 "이름"하나만 바꿨는데 "나이"는 그대로 40이 있다!

 


정리하자면

 

 PUT 요청 시 요청을 일부분만 보낸 경우 나머지는 default 값으로 수정되는 게 원칙이므로,

바뀌지 않는 속성도 모두 보내야 한다.

 

PATCH를 이용하여  ‘이름’만 변경하는 요청을 보내면,

새롭게 바뀐 부분만 반영되며 나머지는 기존의 데이터가 유지된다