반응형
요구사항
- 상품을 검색한 후, 등록 버튼을 눌렀을 때 관심 상품이 생성.
- 검색 결과에서 제목, 이미지, 링크, 최저가를 가져온다.
Dto 클래스 생성
@Getter
public class ProductMypriceRequestDto {
private int myprice;
}
@Getter
public class ProductRequestDto {
// title, link, image, lprice
private String title;
private String link;
private String image;
private int lprice;
}
Product 클래스 수정
// 관심 상품 생성 시 이용
public Product(ProductRequestDto requestDto) {
this.title = requestDto.getTitle();
this.image = requestDto.getImage();
this.link = requestDto.getLink();
this.lprice = requestDto.getLprice();
this.myprice = 0;
}
// 관심 가격 변경 시 이용
public void update(ProductMypriceRequestDto requestDto) {
this.myprice = requestDto.getMyprice();
}
ProductService 생성
@RequiredArgsConstructor // final로 선언된 멤버 변수를 자동으로 생성
@Service // 서비스임을 선언
public class ProductService {
private final ProductRepository productRepository;
@Transactional // 메소드 동작이 SQL 쿼리문임을 선언
public Long update(Long id, ProductMypriceRequestDto requestDto) {
Product product = productRepository.findById(id).orElseThrow(
() -> new NullPointerException("해당 아이디가 존재하지 않습니다.")
);
product.update(requestDto);
return id;
}
}
ProductRestController 수정
// 신규 상품 등록
@PostMapping("/api/products")
public Product createProduct(@RequestBody ProductRequestDto requestDto) {
Product product = new Product(requestDto);
productRepository.save(product);
return product;
}
반응형
'스프링 (Spring) > SelectShop Project' 카테고리의 다른 글
SelectShop - 키워드로 상품 검색하기2 (0) | 2021.08.03 |
---|---|
SelectShop - 키워드로 상품 검색하기 1 (0) | 2021.08.03 |
SelectShop - 관심상품 조회하기 (0) | 2021.08.02 |
SelectShop API 설계 (0) | 2021.08.02 |
네이버 쇼핑 API 사용 & Select Shop프로젝트 생성 (1) | 2021.07.31 |
댓글