-
#실전2 - 3 회원수정 APISPRING-BOOT 2021. 3. 8. 11:41
[출처] 인프런 김영한 강사님 -실전! 스프링 부트와 JPA 활용2 - 웹 애플리케이션 개발
회원 수정같은 경우에는 RESTfull API style의 PUT을 사용한다.
회원 수정
/** * 수정 API */ @PutMapping("/api/v2/members/{id}") public UpdateMemberResponse updateMemberV2( @PathVariable("id") Long id, @RequestBody @Valid UpdateMemberRequest request){ memberService.update(id,request.getName()); //update 후 트랜잭션 끝남 (command 단) Member findMember = memberService.findOne(id); //정상적으로 잘 반영됫는지 쿼리를해서 가져옴(쿼리 단) return new UpdateMemberResponse(findMember.getId(), findMember.getName()); //Response DTO를 통해 반환 } @Data static class UpdateMemberRequest { private String name; } @Data @AllArgsConstructor class UpdateMemberResponse { private Long id; private String name; }
회원 수정도 DTO를 요청 파라미터에 매핑한다. 그리고 개발은 command단이랑 쿼리단이랑 분리해서 진행
command단에서 update후 업데이트한 result를 쿼리단을 통해 다시 조회후 ResponseDto로 화면에 반환
public class MemberService { private final MemberRepository memberRepository; /** * 회원 수정 */ @Transactional public void update(Long id, String name) { Member member = memberRepository.findOne(id); member.setName(name); } }
변경 감지를 사용해서 데이터를 수정
오류정정: 회원 수정 API updateMemberV2 은 회원 정보를 부분 업데이트 한다. 여기서 PUT 방식을 사용했는데, PUT은 전체 업데이트를 할 때 사용하는 것이 맞다. 부분 업데이트를 하려면 PATCH를 사용하거나 POST를 사용하는 것이 REST 스타일에 맞다
'SPRING-BOOT' 카테고리의 다른 글
#실전2 - 5 API 개발 고급 수강 전 조회용 샘플 데이터 입력 (0) 2021.03.08 #실전2 - 4 회원조회 API (0) 2021.03.08 #실전2 -1 postman 설치 및 RESTAPI (0) 2021.03.07 #Spring boot-11 웹 계층 개발 (0) 2021.03.04 #Spring boot-10 주문 도메인 개발 (0) 2021.03.04