Sangwon Coding
Spring Boot - 추상화 코드 적용 본문
PartnerApiController.java
package com.example.study.controller.api;
import com.example.study.controller.CrudController;
import com.example.study.model.entity.Partner;
import com.example.study.model.network.request.PartnerApiRequest;
import com.example.study.model.network.response.PartnerApiResponse;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/partner")
public class PartnerApiController extends CrudController<PartnerApiRequest, PartnerApiResponse, Partner> {
}
PartnerApiLogicService.java
package com.example.study.service;
import com.example.study.model.entity.Partner;
import com.example.study.model.network.Header;
import com.example.study.model.network.request.PartnerApiRequest;
import com.example.study.model.network.response.PartnerApiResponse;
import org.springframework.stereotype.Service;
@Service
public class PartnerApiLogicService extends BaseService<PartnerApiRequest, PartnerApiResponse, Partner>{
@Override
public Header<PartnerApiResponse> create(Header<PartnerApiRequest> request) {
return null;
}
@Override
public Header<PartnerApiResponse> read(Long id) {
return baseRepository.findById(id)
.map(partner -> response(partner))
.orElseGet(()->Header.ERROR("데이터 없음"));
}
@Override
public Header<PartnerApiResponse> update(Header<PartnerApiRequest> request) {
return null;
}
@Override
public Header delete(Long id) {
return null;
}
private Header<PartnerApiResponse> response(Partner partner){
PartnerApiResponse body = PartnerApiResponse.builder()
.id(partner.getId())
.name(partner.getName())
.status(partner.getStatus())
.address(partner.getAddress())
.callCenter(partner.getCallCenter())
.partnerNumber(partner.getPartnerNumber())
.businessNumber(partner.getBusinessNumber())
.ceoName(partner.getCeoName())
.registeredAt(partner.getRegisteredAt())
.unregisteredAt(partner.getUnregisteredAt())
.categoryId(partner.getCategory().getId())
.build();
return Header.OK(body);
}
}

코드 리팩토링 (추상화) 를 Partner의 API에 적용시킨 결과이다.
'Spring > Spring Boot (어드민 페이지)' 카테고리의 다른 글
Spring Boot - 페이징 처리 (0) | 2020.01.01 |
---|---|
Spring Boot - 샘플 데이터 생성 (0) | 2020.01.01 |
Spring Boot - JPA Enum 형태의 값 관리 (0) | 2020.01.01 |
Spring Boot - 주문내역 API CRUD (0) | 2020.01.01 |
Spring Boot - 상품 API CRUD (0) | 2020.01.01 |
Comments