computer science/Network

REST API method중 PUT 과 PATCH의 차이.

PCOSPD 100LRE SCRIE4A2 2021. 3. 1. 16:49

- PUT과 PATCH 둘다 업데이트 시에 사용됨.

 

- PUT은 넘겨주지 않은 값은 null 로 업데이트 해버림.

category를 빼고 put 으로 update 요청함.

 

- 결과 category 컬럼은 null로 변경되버림.

 

- PATCH 는 넘겨주지 않은 값은 기존의 값으로 남겨둠.

....

 

여기까지 작성하다가 문제가 생겼다.

결론적으로..

 

post - 매번 새로 등록됨.

put - 없으면 등록하고 있으면 update. 멱등성보장. idempotent. 값이 없는 컬럼을 받으면 null 로 업데이트 해버림.

patch - 값이 있는 컬럼만 update.

 

정의와 대략적인 성질은 위와 같은데.

어째서 직접 테스트 하면 patch도 값이 없는 데이터를 null로 등록하냐구.

또한, put도 insert를 타면 계속 insert를 하고.

 

그냥 mybatis mapper에 있는 SQL문에 따라서 요청을 실행해 버리는데...

이 호출 메서드에 따른 차이를 구현하려면 어떻게 해야 할지 구글링 해도 나오질 않는다.

여기에 계속 묶여있을 순 없으니 일단 이슈를 keep 해놓고 해결책을 찾은 후에 포스팅을 업데이트 하도록 하자.