[Spring] PUT 과 PATCH 차이

2024. 7. 5. 12:36·스터디/Spring
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
    저작자표시 비영리 변경금지 (새창열림)

    '스터디 > Spring' 카테고리의 다른 글

    [Spring] Springboot 버전에 따른 validation 패키지 (org.hibernate.validator.constraints does not exist)  (0) 2024.07.07
    [Spring] PUT 과 PATCH 사용시 주의할 점  (0) 2024.07.06
    [Spring] MultiValueMap 의미와 사용법  (0) 2024.04.21
    [Spring] properties와 yml 중 어떤걸 사용할까?  (0) 2023.09.04
    [Spring] Mybatis resultType과 resultMap  (0) 2023.08.25
    '스터디/Spring' 카테고리의 다른 글
    • [Spring] Springboot 버전에 따른 validation 패키지 (org.hibernate.validator.constraints does not exist)
    • [Spring] PUT 과 PATCH 사용시 주의할 점
    • [Spring] MultiValueMap 의미와 사용법
    • [Spring] properties와 yml 중 어떤걸 사용할까?
    zoodi
    zoodi
    IT/개발 관련 지식을 기록하는 블로그입니다.
    • zoodi
      오늘의 기록
      zoodi
    • 전체
      오늘
      어제
      • 분류 전체보기
        • 후기
          • 컨퍼런스
          • 일상리뷰
        • 금융경제
          • 뉴스
          • 금융IT용어
          • 경제 및 부동산
        • 코딩 테스트
        • 스터디
          • JAVA
          • Kotlin
          • Spring
          • React, Nextjs
          • 인공지능 AI
          • Cloud & k8s
          • Kafka
          • Database
          • Network
          • Algorithm
          • Hadoop
          • LINUX
          • R Programming
          • 기타 (소공, 보안)
        • 도서
        • 기타
    • 블로그 메뉴

      • 홈
      • 스터디
      • 금융경제
      • 후기
      • 기타
    • 링크

    • 공지사항

    • 인기 글

    • 태그

      MySQL
      kafka
      자바
      Python
      금융용어
      리트코드
      springboot
      pythoncodingtest
      코딜리티
      카카오코테
      스프링
      스프링부트
      네트워크
      codility
      Spring
      코테
      쿠버네티스
      코테공부
      코딩테스트
      자료구조
      알고리즘
      프로그래머스
      이분탐색
      코딩
      java
      C++
      db
      Kotlin
      CodingTest
      LeetCode
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.4
    zoodi
    [Spring] PUT 과 PATCH 차이
    상단으로

    티스토리툴바