스터디/Spring
[Spring] PUT 과 PATCH 차이
zoodi
2024. 7. 5. 12:36
728x90
PATCH /customers?id=1
{
name : AA,
balance : 0
}
목차
1.PUT 메소드
정의
The HTTP PUT request method creates a new resource or replaces a representation of the target resource with the request payload.
HTTP PUT 메서드는 요청 페이로드를 사용해 새로운 리소스를 생성하거나, 대상 리소스를 나타내는 데이터를 대체합니다.
UPDATE 방식
- 예시
아래와 같은 데이터가 존재한다고 가정합니다.
idbalancename
1 | 100 | A |
2 | 20 | B |
3 | -120 | C |
id=1 인 유저의 데이터를 아래와 같이 두 케이스로 PUT 요청을 보냈다고 했을 때 결과는 다음과 같습니다.
요청 1)
PUT /customers?id=1
{
name : AA,
balance : 0
}
1 | 0 | AA |
2 | 20 | B |
3 | -120 | C |
요청 2)
PUT /customers?id=1
{
name : AA
}
1 | null | AA |
2 | 20 | B |
3 | -120 | C |
즉, 보내지 않은 값은 null로 대체됩니다.
다시 말해서, PUT의 정의처럼 대상 리소스를 나타내는 데이터를 대체합니다.
요청한 URI에 자원이 존재하지 않을 때
새로운 자원을 생성합니다.
PUT /customers?id=4
{
name : D,
balance : 0
}
1 | 100 | A |
2 | 20 | B |
3 | -120 | C |
4 | 0 | D |
2. PATCH 메소드
정의
The HTTP PATCH request method applies partial modifications to a resource.
HTTP PATCH 메소드는 리소스의 부분적인 수정을 할 때에 사용됩니다.
UPDATE 방식
- 예시
위와 똑같은 데이터를 아래와 같이 요청을 보냈다고 가정합니다.
요청 1)
PATCH /customers?id=1
{
name : AA,
balance : 0
}
1 | 0 | AA |
2 | 20 | B |
3 | -120 | C |
요청 2)
PATCH /customers?id=1
{
name : AA
}
1 | 100 | AA |
2 | 20 | B |
3 | -120 | C |
즉, 보내지 않은 값은 그대로 유지되고 있습니다.
요청한 URI에 자원이 존재하지 않을 때
새로운 자원을 생성하지 않습니다.
PUT /customers?id=4
{
name : D,
balance : 0
}
1 | 100 | A |
2 | 20 | B |
3 | -120 | C |
728x90