728x90
반응형

RESTful API란?

자원을 URI로 표현하고, 자원에 대한 행위를 HTTP Method(GET, POST, PUT, DELETE)로 표현한다.

PUT : 리소스의 모든 것을 업데이트 한다.
PATCH : 리소스의 일부를 업데이트 한다.

가령 한 사용자에 대해 여러 정보를 객체로 수집하여 서버로 보내는 경우, PUT은 보내지지 않은 정보에 대해서는 null값으로 업데이트하지만, PATCH는 기존 데이터를 유지하는 방식으로 대응한다.

 

 

HTTP Method는 크게 GET, POST, PUT, DELETE가 대표적이며,

보통 CRUD에서 조회는 GET, 등록은 POST, 수정은 PUT, 삭제는 DELETE를 이용한다.

GET과 DELETE는 비교적 그 행위가 명확하지만, POST와 PUT을 구분하기 위해서는 멱등성의 개념을 알아야 한다.

 

PUT

반면 리소스의 위치가 명확히 지정된 다음의 요청을 고려해 보자.

 

PUT /dogs/3 HTTP/1.1 { "name": "blue", "age": 5 }

 

/dogs 의 프로퍼티가 name  age 뿐이라면, 이건 몇 번을 수행하더라도, 같은 결과를 보장한다. 다시 말해 idempotent 하다.

그리고 위에 예에서 알 수 있듯이 PUT  리소스의 위치가 지정되었을때 생성 또는 업데이트 를 위해 사용할 수 있다.

 

PATCH

PUT 이 리소스의 모든 프로퍼티를 업데이트 하기 위해 사용된다면, PATCH 는 부분만을 업데이트하기 위해 사용한다. PUT 과 마찬가지로 리소스의 위치를 클라이언트가 알고 있을 때 사용한다.

 

(1) POST to a URL creates a child resouce at a server defiend URL
(2) PUT to a URL create/replaces the resource in is entirely at the client defined URL
(3) PATCH to a URL updates part of the resource at that client defined URL

멱등성(Idempotence)이란?

멱등성이란 여러번 수행해도 결과가 같음을 의미한다.

HTTP 메소드를 예를 들자면, GET, PUT, DELETE는 같은 경로로 여러 번 호출해도 결과가 같다.

그러나 POST는 매 호출마다 새로운 데이터가 추가된다. 

따라서, POST 연산은 결과가 Idempotent하지 않지만, PUT은 반복 수행해도 그 결과가 Idempotent 하다. 




출처: https://devuna.tistory.com/77 [튜나 개발일기]

 

[REST API] REST API 규칙/PUT과 POST 차이/PUT과 PATCH 차이

먼저, REST란? Representational State Transfer의 약자이며, 다음과 같이 구성되어 있다. 자원(Resource): URI 행위(Verb): HTTP Method 표현(Representations) 즉 REST는 URI를 통해 자원을 표시하고, HTTP M..

devuna.tistory.com

 

728x90
반응형

'IT Interview' 카테고리의 다른 글

010. SOAP (Simple Object Access Protocol)  (0) 2021.09.15
009. DB JOIN의 종류  (0) 2021.09.15
007. MVC , MSA  (0) 2021.09.13
006. CI/CD  (0) 2021.09.13
005. 싱글톤 패턴  (0) 2021.09.12

+ Recent posts