지금까지 REST API의 “update” 부분을 구현했을 때 “PUT” method를 사용했는데 오늘은 Team project의 API 명세를 만들면서 “PATCH” method의 사용하는 방법을 알게 되었습니다. 그래서 PUT과 PATCH method들을 비교해 봤습니다.
1. PUT method
- 목적: PUT은 전체 리소스를 교체하는 데 사용됩니다.
- 사용 방법: PUT 요청을 보낼 때는 리소스의 전체 표현을 포함해야 합니다. 즉, 요청에 포함되지 않은 필드는 기본값이나 null로 덮어씌워질 수 있습니다.
- 멱등성(Idempotent): PUT은 멱등성을 가지므로, 동일한 데이터를 여러 번 호출해도 한 번 호출한 것과 동일한 결과를 가져옵니다.
예시: 사용자 프로필 업데이트:
PUT /users/123
{
"name": "Jane Doe",
"email": "[jane@example.com](<mailto:jane@example.com>)",
"phone": "123-456-7890"
}
여기서 "phone" 필드를 제외하고 요청을 보내면, 서버의 기록에서 이 필드가 덮어써지거나 제거될 수 있습니다.
2. PATCH method
- 목적: PATCH는 부분 업데이트에 사용됩니다. 즉, 수정하려는 필드만 전송하면 됩니다.
- 사용 방법: PATCH 요청에는 수정하고자 하는 특정 필드만 포함되어, 리소스의 다른 필드에는 영향을 주지 않습니다.
- 멱등성(Idempotent): 멱등성을 가지도록 설계되어 있지만, 이는 구현에 따라 달라질 수 있습니다. 이상적으로는 동일한 PATCH 요청을 여러 번 적용해도 리소스가 동일한 상태로 유지되어야 합니다.
예시: 사용자 프로필의 일부 업데이트:
PATCH /users/123
{
"phone": "123-456-7890"
}
이 요청은 phone 필드만 업데이트하고, 다른 필드는 그대로 유지합니다.
요약
- PUT: 전체 업데이트, 리소스 전체 교체, 모든 필드가 필요, 멱등성 유지.
- PATCH: 부분 업데이트, 특정 필드만 수정, 다른 필드는 그대로 유지, 이상적으로는 멱등성 유지.
'Spring Boot' 카테고리의 다른 글
| Spring Boot - Github Repository에서 민감한 정보를 숨기기 (IntelliJ) (0) | 2024.11.08 |
|---|---|
| Spring Boot app과 local MySQL database 연동 (2) | 2024.11.07 |
| Troubleshooting - "GenerationTarget encountered exception accepting command : Error executing DDL " (3) | 2024.10.17 |
| Spring Boot - JSON Web Token JWT 생성 (0) | 2024.10.11 |
| Spring Boot - JSON Web Token JWT란 (1) | 2024.10.11 |