본문 바로가기
스터디/Spring

[Spring] PUT 과 PATCH 차이

by zoodi 2024. 7. 5.
728x90
PATCH /customers?id=1
{
	name : AA,
    balance : 0
}

목차

  1. 1.PUT 메소드
    1. 정의
  2. UPDATE 방식
  3. 요청한 URI에 자원이 존재하지 않을 때
  4. 2. PATCH 메소드
    1. 정의
  5. UPDATE 방식
  6. 요청한 URI에 자원이 존재하지 않을 때

 

 

 

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

 


참고자료
https://velog.io/@vagabondms/%EA%B8%B0%EC%88%A0-%EC%8A%A4%ED%84%B0%EB%94%94-PUT%EA%B3%BC-PATCH-%EC%B0%A8%EC%9D%B4

https://www.inflearn.com/questions/1175426/%EC%88%98%EC%A0%95%EC%9D%B4%EB%9D%BC%EB%8A%94-%EC%9E%91%EC%97%85%EC%9D%84-%ED%95%A0-%EB%95%8C-put%EC%9D%84-%EB%8D%94-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0%EA%B0%80-%EC%9E%88%EC%9D%84%EA%B9%8C%EC%9A%94

https://velog.io/@qkrdbqls1001/Spring-Boot-%EB%AA%85%EC%8B%9C%EC%A0%81%EC%9D%B8-Null-%EA%B0%92%EC%9C%BC%EB%A1%9C-%EB%B6%80%EB%B6%84-%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8PATCH-%EC%88%98%ED%96%89%ED%95%98%EA%B8%B0

728x90

댓글