Spring & Spring boot

[Spring Boot] Rest Controller - 4. PUT

jh4dev 2024. 7. 24. 15:57
<목차>

1. Http Method PUT
2. PUT Controller

 

[Http Method PUT]

HTTP PUT 메서드는 클라이언트가 지정된 URI에 대해 서버에 리소스를 생성하거나, 기존 리소스를 (전체) 대체하도록 요청한다.
부분 대체의 목적으로 PATCH 메서드가 있으나, 실무에서 PUT과 PATCH를 구분하여 사용하는 경우는 드문 것 같다.
다른 이유보다도, 수정된 컬럼만 지정해서 업데이트 하기 보다는,  Column 전체를 업데이트 하는 경우가 대부분이기 때문이다.

  • 클라이언트가 같은 PUT 요청을 여러 번 보내도 결과가 달라지지 않는다.
  • PUT 요청은 리소스의 전체 대체를 의미한다.

[PUT Controller]

PUT Controller 의 형태는 POST API 와 크게 다르지 않다.

@RequestBody 어노테이션을 활용해  Map 또는 DTO 를 사용하여 파라미터를 받아 처리하면 된다.

 

    /**
     * PutMapping
     * 1) RequestBody 어노테이션을 활용한 PUT 메서드
     * Map 활용
     * */
    @PutMapping(value = "/member")
    public String putMemberMap(@RequestBody Map<String, Object> postData) {
        StringBuilder builder = new StringBuilder();
        postData.entrySet().forEach(
                entry -> builder.append(entry.getKey()).append(" : ").append(entry.getValue())
        );

        return builder.toString();
    }

    /**
     * PutMapping
     * 1) RequestBody 어노테이션을 활용한 PUT 메서드
     * Dto 활용
     * */
    @PutMapping(value = "/member2")
    public String putMemberDto2(@RequestBody MemberDto member) {
        return member.toString();
    }

 

 

 

 

 

[참고 도서]

 

<스프링 부트 핵심 가이드>
저자 : 장정우

출판사 : 위키북스