이건 못 참지/REST API

GET, POST, PUT, DELETE 간단한 정리

눙엉 2021. 9. 25. 14:39

이번 프로젝트를 진행하며 axios를 사용하여 비동기 통신을 사용하게 되었다. 

 

GET, DELETE는 이름만 봐도 GET은 정보를 가져오고 DELETE는 삭제하라는 것 같이 느껴지는데 POST랑 PUT의 차이점은 뭔가 한 번에 확 와닿지 않아서 간단하게 정리를 해보려고 한다.

 

여러 글을 읽어보니 멱등성이라는 단어를 사용하길래 나도 간단히 적어본다..

 

멱등성이란 여러번 반복 실행해도 결과가 같은 것을 의미한다.

 

예를 들어서 GET, PUT, DELETE는 같은 경로로 반복 실행해도 결과가 같지만 POST는 동일한 결과를 보장받을 수 없다.

 

1. GET

데이터를 검색하거나 읽을 때 사용한다.

같은 요청을 여러 번 반복 하더라도 항상 같은 응답을 받는다.

 

2. POST

새로운 글을 작성할 때 사용한다.(그래서 포스팅한다고 하는 건가)

GET과는 다르게 같은 요청을 여러 번 반복하더라도 항상 같은 응답을 받는다고 보장받지 못한다.

 

3. PUT

글을 수정 할 때 사용한다.

PUT 요청을 여러 번 반복하면 항상 동일한 결과를 보장받을 수 있다.

 

4. DELETE

글을 삭제할 때 사용한다.

 

✏️  소소한 팁

PUT과 PATCH는 수정 작업을 할 때 사용하는 메서드이다. 하지만 차이점이 존재한다.

PUT을 이용하는 경우 수정하지 않는 정보들도 같이 전송을 해주어야 한다. 전송하지 않으면 null 또는 default 값으로 처리되기 때문이다.

{
	"age" : 27
    	"name" : "최수혁"
}

{
	"age" : 26
    	"name" : null
}

age를 수정하기 위해서 age만 전송하면 name은 null 또는 default 값이 적용된다.

 

PATCH는 PUT과 다르게 수정하고 싶은 정보만 보내면 나머지는 기존의 데이터를 사용한다.

{
	"age" : 27
    	"name" : "최수혁"
}


{
	"age" : 26
    	"name" : "최수혁"
}

age만 수정해도 나머지 정보들은 그대로 사용가능하다.

 

이 점에서 PUT과 PATCH의 다른 점이다.

 

정보를 모두 수정하려면 PUT을 이용하고 일부를 수정하려면 PATCH를 사용하면 될 것 같다.

'이건 못 참지 > REST API' 카테고리의 다른 글

Request param, query, body의 차이  (0) 2021.11.29