JPA활용2-회원등록 API

언젠간·2022년 9월 20일

회원등록 API v1

Entity(Member)와 API가 1:1로 맵핑되어 있어 제한적임.

Entity 구조가 바뀌면 API 스펙도 변경해야 함

  • Send API
    {
        "name": "hello"
     }
  • 서버측 수신
    @PostMapping("/api/v1/members")
    public CreateMemberResponse saveMemberV1(@RequestBody @Valid Member member) {
        Long id = memberService.join(member);
        return new CreateMemberResponse(id);
    }
    
    @Data
    static class CreateMemberResponse{
    	private Long id;
    	public CreateMemberResponse(Long id) {
    		this.id = id;
    	}
    }
  • Return
    {
        "id": 2
    }

회원등록 API v2

Entity 구조가 바뀌더라도 컴파일 에러가 나기 때문에 API에 영향을 주지 않음

Entity를 parameter로 받으면 안됨

  • Send API
    {
        "name": "hello3"
     }
  • 서버측 수신
    @PostMapping("/api/v2/members")
    public CreateMemberResponse saveMemberV2(@RequestBody @Valid CreateMemberRequest request) {
    	Member member = new Member();
    	member.setName(request.getName());
    		
    	Long id = memberService.join(member);
    	return new CreateMemberResponse(id);
    }
    //Presentation Layer(DTO)
    @Data
    static class CreateMemberRequest{
    	//@NotEmpty <---DTO에 붙여주면 됨
    	private String name;
    }
    ``
  • Return
    {
        "id": 3
    }
profile
코딩왕이될사나이

0개의 댓글