프로그래밍/spring boot

[스프링부트] 실전! 스프링 부트와 JPA 활용2 #1 API 개발(2) 회원 수정

aSpring 2023. 11. 14. 19:58
728x90
728x90
※ 본 포스팅은 김영한 강사님의 인프런 '실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화' 강의를 들으며 작성한 수강일지 입니다.

 

 

 

| API 개발 기본

1. 회원 등록 API
2. 회원 수정 API
3. 회원 조회 API

 

2. 회원 수정 API

@PostMapping("/api/v2/members/{id}") // PUT 전체 수정, PATCH or POST 부분 수정
    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;
    }

 

  • 회원 수정도 DTO를 요청 파라미터에 매핑
@Transactional
public void update(Long id, String name) {
    Member member = memberRepository.findOne(id); // id로 해당 멤버를 찾아오고(db에서 영속성 컨텍스트에 올려줌)
    member.setName(name); // 변경 감지에 의해 update 됨
}

 

  • 변경 감지를 사용해서 데이터를 수정
REST API
회원 수정 API updateMemberV2은 회원 정보를 부분 업데이트 -> PATCH 또는 POST
전체 업데이트 -> PUT

 

728x90
728x90