goodorbad 2022. 12. 5. 15:32
728x90

PUT

  • 리소스를 대체
    • 리소스가 있으면 대체
    • 리소스가 없으면 생성
    • 쉽게 얘기해서 기존 리소스를 완전히 덮어버림
  • 클라이언트가 리소스를 식별
    • 클라이언트가 리소스 위치를 알고 URI 지정 (어디에다가 어떤 데이터를 집어넣을거라고 지정해줌)
    • POST와 차이점 

 

ex)

리소스가 있으면 해당 자리에 데이터가 덮어짐.

리소스가 없으면 해당 자리에 데이터를 넣음 

 

⚠️ 주의! 리소스를 완전히 대체한다. 

ex) 회원 테이블에 name, age, address 가 있다. 

100원 회원의 age만 바꾸고 싶어 100번에 바꾸고 싶은 age만을 PUT → age 말고 name, address 가 NULL로 바뀜 

 

PUT은 사실 리소스를 수정하는게 아니다! 

 

PATCH

  • 리소스의 부분 변경

만약, PATCH가 되지 않을 경우 POST를 사용함

 

API 구현시 PUT과 PATCH의 차이 

PUT

  • 받은 DTO 그대로 update 

 

PATCH

  • 받은 id로 해당 자원을 찾은 후, 교체할 데이터만 수정해 DTO에 저장 → update 

 

참고

https://tecoble.techcourse.co.kr/post/2020-08-17-put-vs-patch/

https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard

728x90