먼저, REST란?
Representational State Transfer의 약자이며, 다음과 같이 구성되어 있다.
- 자원(Resource): URI
- 행위(Verb): HTTP Method
- 표현(Representations)
즉 REST는 URI를 통해 자원을 표시하고, HTTP Method를 이용하여 해당 자원의 행위를 규정하여
그 결과를 받는 것을 말한다.
HTTP Method는 크게 GET, POST, PUT, DELETE가 대표적이며,
보통 CRUD에서 조회는 GET, 등록은 POST, 수정은 PUT, 삭제는 DELETE를 이용한다.
GET과 DELETE는 비교적 그 행위가 명확하지만, POST와 PUT을 구분하기 위해서는 멱등성의 개념을 알아야 한다.
PUT vs PATCH
restful API 를 사용할 때 UPDATE 하는 부분에서 PUT or PATCH 를 사용한다.
두 개의 차이점
- PUT : 자원 전체 교체 (자원의 모든 필드 필요) (만약 입력하지 않았을 경우 null로 받지만 get으로 받아온 값을 그대로 입력하게 하여 방지할수있다)
- PATCH : 자원의 부분 교체 (자원의 일부 필드 필요)
하지만 PATCH는 우리가 사용하는 대부분의 웹서버 및 브라우저에서 지원하지 않는다고 한다..
정확하지는 않지만 IE8, PHP, Tomcat, Django 등등 많은 곳에서 지원하지 않기 때문에 유의해야 한다고 한다..