RFC 5789는
HTTP 프로토콜에서 PATCH 메서드의 의미와 사용 방법을
공식적으로 정의한 문서
RESTful API를 설계할 때
PATCH를 사용하는 것이 왜 정당한지,
어떤 규칙을 따라야 하는지를 알려주는 표준 문서
기존의 PUT 메서드는 전체 리소스를 교체하는 방식이지만,
어떤 경우에는 일부만 수정하고 싶을 수 있음
이런 목적을 위해 등장한 것이 바로 PATCH 메서드이고,
RFC 5789는 이 PATCH 메서드를 표준으로 정의한 문서
The PATCH method requests
that a set of changes
described in the request be applied
to the resource
identified by the Request-URI.
• 요청 URI로 지정된 리소스에 대해,
주어진 변경사항만 적용하겠다는 뜻
• 전체 교체가 아님
→ 부분 수정(partial update) 이라는 점이 핵심

• 204 No Content: 수정 성공, 응답 본문 없음
• 200 OK: 수정 성공, 응답 본문 있음
• 403 Forbidden: 권한 없음
• 404 Not Found: 리소스 없음 (보통은 PATCH는 리소스가 존재할 때만 사용됨)
RFC 5789는 PATCH를 기존 리소스에만 적용해야 한다고 말함
If the target resource does not exist,
the origin server MAY create a new resource,
depending on the application logic.
However, this is not standard.
• 기본적으로는 404를 반환하는 게 맞지만
• 애플리케이션이 필요하다면 업서트(upsert) 처럼 생성도 허용 가능
요청:
PATCH /users/123
Content-Type: application/json{
"nickname": "goldangeee"
}
응답:
HTTP/1.1 200 OK
{
"id": 123,
"nickname": "goldangeee",
"email": "yongjin@example.com"
}
HTTP에서 부분 수정이 필요할 때 사용하는 공식 메서드
리소스 일부 필드만 바꿀 때 PATCH를 사용하는 것이 REST스럽고 효율적
엄밀히는 404, 그러나 필요 시 생성도 허용 가능 (비표준)