PUT vs PATCH

July 19, 2022

REST API - put, patch 비교

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
}

put&patch-1

위와 같은 github 데이터가 있다고 가정했을 때

PUT, PATCH의 차이점을 알기 위해 update요청을 보내보았을 때 아래와 같은 결과를 응답한다.

PUT /info/1
{
    GithubID : "youhavetosleep",
    role : 'Full-stack'
}

put&patch-2

PUT 메소드로 update요청을 보내게되면 contributions는 입력하지 않았기 때문에 null 값이 된다.


PATCH /info/1
{
    GithubID : "youhavetosleep",
    role : 'Full-stack'
}

put&patch-3

PATCH 메소드로 update요청을 보내게되면 contributions는 입력하지 않아도 기존의 값이 유지된다.

정리

  • 위의 차이점에서 볼 수 있듯이
  • 리소스의 일부를 업데이트 하기 위해선 PATCH 메소드가 적절하며,
  • 리소스의 전체를 업데이트 하기 위해서는 PUT 메소드가 적절하다.

참조

https://evan-moon.github.io/2020/04/07/about-restful-api/#rest가-의미하는-것이-무엇인가요

https://zereight.tistory.com/974#toc-POST vs PUT