RESTful한 api를 만들려면 해당 작업에는 put 메서드를 써야함.
post랑 put 두 메서드는 멱등성으로 따지면 차이가 있는데 이 설명은 mdn 문서에 잘 나와 있어서 읽어보는걸 추천.
https://developer.mozilla.org/ko/docs/Glossary/Idempotent
내용을 정리하면 멱등성은 같은 요청을 보냈을때 요청에 해당하는 자원의 상태에 변화 외에는 별도의 사이드 이펙트가 없어야함을 의미해.
그런 점에서 post와 put 둘다 서버에 있는 자원에 어떠한 행동을 요청하는 메서드임은 동일하지만, post의 경우 멱등성이 없기 때문에 같은 요청을 보내도 사이드 이펙트(=새로운 데이터)가 생기고, put의 경우 멱등성이 있기 때문에 기존 데이터를 변화시키는 행동 외에는 사이드 이펙트(=새로운 데이터)가 발생하지 않는다고 이해하면 될듯.
상품정보에 대한 rest api를 만드는 예시를 써보자면 아래와 같이 만들 수 있을거임.
[POST] /product 상품 데이터 생성, 같은 요청을 할 때마다 새로운 상품 데이터가 생성됨.
[PUT] /product/:ptoductId 상품 데이터 수정, productId에 해당하는 상품 정보를 수정하기 위해 사용, 같은 요청을 보내더라도 productId에 해당하는 상품의 정보는 변화하더라도 그 외에 새로운 데이터의 발생, 즉 사이드 이펙트는 발생하지 않음.