회원 수정 API

학습 페이지

지금까지 회원 등록 API를 만들었다. 이제 수정 API를 REST스타일로 만들어보자.

수정은 PUT으로 가져가자.

PUT은 멱등성을 갖고 있다. 같은 함수를 몇번이든 적용하든 결과가 같은 속성임.

@PutMapping("/api/v2/members")
    public UpdateMemberResponse updateMemberV2(@PathVariable("id") Long id, @RequestBody @Valid UpdateMemberRequest){
        
    }

이번에도 여전히 요청과 응답을 모두 DTO로 처리한다.

그리고 등록과 수정은 대부분은 DTO가 다른 구조를 갖고 있다.

DTO도 이너클래스로 만들어주자.

    @Data
    static class UpdateMemberRequest {
        private String name;
    }
    @Data
    @AllArgsConstructor
    static class UpdateMemberResponse {
        private Long id;
        private String name;
    }

💡 참고로 김영한님은 엔티티에는 롬복을 최소화하신다고 하심. 써도 getter정도만 쓴다고 한다. 다만 DTO에는 좀 자유롭게 쓰는 스타일이라고 하심.

수정시에는 전에 배웠던 것 처럼 병합보다는 변경감지를 이용한다.

   @PutMapping("/api/v2/members{id}")
    public UpdateMemberResponse updateMemberV2(
            @PathVariable("id") Long id, @RequestBody @Valid UpdateMemberRequest request){

        memberService.update(id, request.getName());

        return new UpdateMemberResponse(); //생성자에 값을 채워줘야 한다.

    }