본문 바로가기
스터디/Spring

[Spring] PUT 과 PATCH 차이

by zoodi 2024. 7. 5.
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

     


    참고자료
    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

    댓글