-
회원 수정 APIJPA/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이 수정된 것을 확인할 수 있었다.
'JPA > JPA 활용' 카테고리의 다른 글
간단한 주문조회 API - 지연 로딩과 조회 성능 최적화 (0) 2023.07.11 회원 조회 API (0) 2023.07.11 회원 등록 API (0) 2023.07.11 웹 계층 개발 - 상품 주문과 주문 내역 (0) 2023.07.11 변경 감지와 병합(merge) (0) 2023.07.11