ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 회원 수정 API
    JPA/JPA 활용 2023. 7. 11. 18:14

    (등록을 진행한 컨트롤러와 같은 컨트롤러에 등록 클래스 아래에 만들었음)

     

     

    @PutMapping을 이용한 회원 이름 수정

    @RestController
    @RequiredArgsConstructor
    public class MemberApiController {
    
        @PutMapping("api/v2/members/{id}")
        public UpdateMemberResponse updateMemberV2(@PathVariable("id") Long id,
                                                   @RequestBody @Valid UpdateMemberRequest request) {
    
            memberService.update(id, request.getName());
            Member findMember = memberService.findOne(id);
            return new UpdateMemberResponse(findMember.getId(), findMember.getName());
        }
        
        @Data
        static class UpdateMemberRequest {
            private String name;
        }
    
        @Data
        @AllArgsConstructor
        static class UpdateMemberResponse {
            private Long id;
            private String name;
        }
     }

    멤버를 수정하는 클래스이다. 수정은 보통 PutMapping을 사용한다. PathVariable로 id 값을 받아와서 그 id 값에 맞는 이름을 업데이트 해주는 로직이다.

    물론 수정 API도 다른 Dto를 만들어서 진행해줬다. Dto는 새로운 클래스를 만들어도 되지만, 공부를 할 때에는 간단한 Dto 이기 때문에 그냥 아래에 추가해주는 방식으로 진행했다.

    MemberService 클래스에 update 로직을 추가해주어서 update가 진행되는 방식이다.

     

     

     

    MemberService에 있는 update 로직

    @Transactional
    public void update(Long id, String name) {
        Member member = memberRepository.findOne(id);
        member.setName(name);
    }

    이전에 공부한 영속성 컨텍스트의 변경감지 기능을 사용한 업데이트 기능

     

     

     

    Postman으로 작동 확인

    먼저 수정을 하기 위해서 처음에 hello라는 이름의 데이터를 보내줬다. 

     

     

    Send 방식을 PUT방식으로 변경하고 url 뒤에 /1을 추가해서 1번 id의 정보를 수정하는 url을 만들어줬다.

    본문에 "name": "new-hello"로 변경해준 다음에 Send를 보내니 1번 아이디의 name이 수정된 것을 확인할 수 있었다.

     

     

Designed by Tistory.