728x90
반응형
전 게시글은 회원 등록 API 개발이었고, 이번 게시글은 회원 수정 API 개발이다.
회원 등록과 달리 수정이기 때문에 이번에는 REST API에서 PUT Method를 사용한다.
* PUT Method와 POST Method의 차이!
수정하고자 하는 정보가 부분 정보인지 아니면 전체 정보인지에 따라 달리 사용하면 된다.
PUT은 전체 업데이트를 할 때 사용하는 것이 적절하다. 부분 업데이트가 필요한 경우에는 PATCH를 사용하거나 POST를 사용하는 것이 REST API 스타일에 적절하다.
전 게시글을 통해 파라미터에는 엔티티가 아닌 API 스펙에 맞는 DTO 클래스를 생성하여 넘겨주어야 한다는 것을 알 수 있었다.
그러므로 이번 글에서는 엔티티 파라미터가 아닌 DTO 파라미터만 설명한다.
@RestController
@RequiredArgsConstructor
public class MemberApiController {
private final MemberService memberService;
@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.getUsername());
}
@Data
@AllArgsConstructor
static class UpdateMemberResponse{
private Long id;
private String name;
}
@Data
static class UpdateMemberRequest{
private String name;
}
}
url 마지막에 넘겨오는 id로 memberServicd에서 update를 진행한다.
update는 변경감지를 통해 진행한다.
public class MemberService {
private final MemberRepository memberRepository;
/**
* 회원 수정
*/
@Transactional
public void update(Long id, String name) {
Member member = memberRepository.findOne(id);
member.setName(name);
}
}
* 별로 어려운 내용이 없고 중요한 것은 변경감지를 통해 백엔드에서 업데이트 하는 부분과 DTO를 통해 API 스펙에 맞춰 개발하는 부분에 집중하면 될 것 같다.
728x90
반응형
'Spring > API' 카테고리의 다른 글
API 개발 : 간단한 주문조회 (지연로딩 최적화 - 패치 조인) (0) | 2022.06.26 |
---|---|
API 개발 : 간단한 주문 조회 (지연 로딩) (0) | 2022.06.26 |
회원 조회 API 개발 / Result 클래스로 유연한 JSON 반환 (0) | 2022.06.25 |
회원 등록 API 개발 (0) | 2022.06.25 |
API란? REST API란? (0) | 2022.06.25 |