PUT, PATCH 차이점을 보기 전, RESTful API는 http 메서드를 CRUD(Create, Read, Update, Delete)로 표현한다.
CRUD : 아래와 같이 각각 대응된다.
create : POST
read : GET
update : PUT, PATCH
delete : DELETE
PUT vs PATCH
이번엔 update 메소드인 PUT, PATCH 의 차이에 대해 알아보고자 한다.
이 둘은 리소스를 update 하는 역할을 한다는 점에서 같지만 차이점이 존재한다.
PATCH 는 리소스의 일부를 업데이트
PUT 은 리소스의 전부를 업데이트
아래 예시를 살펴보자면
{
GithubID : "youhavetosleep",
role : 'Front-End'
contributions : 1,147
}
위와 같은 github 데이터가 있다고 가정했을 때
PUT, PATCH의 차이점을 알기 위해 update요청을 보내보았을 때 아래와 같은 결과를 응답한다.
PUT /info/1
{
GithubID : "youhavetosleep",
role : 'Full-stack'
}
PUT 메소드로 update요청을 보내게되면 contributions는 입력하지 않았기 때문에 null 값이 된다.
PATCH /info/1
{
GithubID : "youhavetosleep",
role : 'Full-stack'
}
PATCH 메소드로 update요청을 보내게되면 contributions는 입력하지 않아도 기존의 값이 유지된다.
정리
- 위의 차이점에서 볼 수 있듯이
- 리소스의 일부를 업데이트 하기 위해선 PATCH 메소드가 적절하며,
- 리소스의 전체를 업데이트 하기 위해서는 PUT 메소드가 적절하다.
참조
https://evan-moon.github.io/2020/04/07/about-restful-api/#rest가-의미하는-것이-무엇인가요