Put은 리소스를 전체적으로 교체할 때,
Patch는 리소스의 일부를 수정할 때 사용해야 된다고 이해하고 쓰고 있음
근데 내가 생각한 "리소스 전체"의 의미가 잘못된거같더라고?
다른 사람들 코드를 보면 게시물 수정할때 Put을 다 쓰던데 이게 이해가 좀 안가
게시물 entity의 구성이
id, title, content, createdDate, lastModifiedDate, .... 등등 이렇게 구성되어있을때
수정 API의 매개변수는 고작 title, content 잖어?
이건 리소스의 일부분 아니야? 왜 다들 PUT으로 API 요청하는지 잘 모르곘써
나는 PATCH 써야하는줄 알았거든!
리소스의 일부분이라는게 대충 눈치껏 어느정도인지 그 범위가 궁금해서 질문해봄
일반적인 REST API라는 것에서 설명하는거에서 get post put delete만을 대상으로 설명해서 그런게 아닐까?
REST API라고 설명하는 것들에서 update를 왜 patch를 안쓰는지 이유까진 모르겠음
그냥 속편하게 Put만 쓸까..
id, createdDate, lastModifiedDate는 서버단에서 자동으로 할당되니까 그런거지 그리고 걍 리소스 일부분이라도 걍 대충 많다 싶으면 put쓰게 되는듯
ㅇㅎ ( 핸들링하는 리소스 중에서 ) "전체" 라고 볼 수 있구나
무조건 patch를 써야 되는 경우는 idempotency가 보장이 안될때임. 예를들어 개추, 비추관련 api
근데 글수정할때 자동할당되는 부분은 그대로 유지하지않음?
네 안만져요ㅇㅇ
근데 작성자 같은 경우는 자동으로 할당되지 않지만 글 수정시에 바꾸지 않는 리소스 잖아여? 이러면 patch가 바람직한건가요?
나도 생각해보니 이해안가네 리소스를 완전히 대체하는게아니라 수정할때 결국 리소스를 끌어와서 거기다 덧씌워서 다시 풋으로 보내는거면 걍 패치로하는게 맞지않나
이게 뭔가 ssr에서 csr이 도입되면서 좀 꼬인 문제인건가? 생각할때마다 재밌는데 머리아퍼
글수정할때 결국 리소스를 전부 끌어온다음 글내용이나 제목만 고치고 그리소스를 다시 전부 put으로 밀어넣는데 이거 생각해보면 비용낭비아닌가?
ㅇㅇ그래서 난 Patch 쓰고 있어서 이게 맞나 싶어서 질문해봄
근데 나도 배울때 걍 무지성으로 게시판수정이런거는 put으로 배움
실제로 대부분 잘못쓰고있는게 맞음