인프런 커뮤니티 질문&답변
강사님! 질문 드립니다!
해결된 질문
작성
·
262
1
자주 질문으로 귀찮게 해드려 죄송합니다!
등록, 수정, 조회 api 강의를 다 듣고, 복습개념으로 api를 다시 만들어 보았는데,
제가 제대로 이해하고 만든 api가 맞을까요..!?
/**
* 등록 API
*/
@Data
public static class SaveMemberReq{
@NotEmpty
private String name;
private String city;
private String street;
private String zipcode;
}
@Data
@AllArgsConstructor
public static class SaveMemberResp{
private Long member_id;
}
@PostMapping("/api/v1/saveMember")
public SaveMemberResp saveMember(@RequestBody @Valid SaveMemberReq req) {
Address address = new Address(req.getCity(), req.getStreet(), req.getZipcode());
Member member = new Member(req.getName(), address);
memberService.memberSave(member);
return new SaveMemberResp(member.getId());
}
/**
* 수정 api
*/
@Data
public static class UpdateMemberReq {
private Long member_id;
private String name;
private String city;
private String street;
private String zipcode;
}
@Data
@AllArgsConstructor
public static class UpdateMemberResp{
private String name;
}
@PostMapping("/api/v1/updateMember")
public UpdateMemberResp updateMember(@RequestBody @Valid UpdateMemberReq req) {
Member member = memberService.memberFind(req.getMember_id());
Address address = new Address(req.getCity(), req.getStreet(), req.getZipcode());
//변경감지
memberService.memberUpdate(member, req.getName(), address);
return new UpdateMemberResp(member.getName());
}
/**
* 조회 api
*/
@Data
@AllArgsConstructor
public static class SearchMemberDto{
private String name;
private String city;
private String street;
private String zipcode;
}
@Data
@AllArgsConstructor
public static class SearchMemberResp<T>{
private int count;
private T data;
}
@GetMapping("/api/v1/searchMember")
public SearchMemberResp<List<SearchMemberDto>> searchMember(){
List<SearchMemberDto> dtos = new ArrayList<MemberApiController.SearchMemberDto>();
List<Member> memberList = memberService.memberList();
for(Member member : memberList) {
dtos.add(new SearchMemberDto(member.getName(), member.getAddress().getCity(),
member.getAddress().getStreet(), member.getAddress().getZipcode()));
}
return new SearchMemberResp<List<SearchMemberDto>>(dtos.size(),dtos);
}




