728x90
1.RESTAPI
프로젝트의 공부 목적에 맞게 만들어보지않았던 RESTAPI를 통한 프로젝트로 변경하여 만들어보기로하였다.
2.만들어야할 API?
우선 만들어야할 API들을 정리해보았다.
Auction
- ✅전체불러오기(/auction)
- ✅개별불러오기(/auction/{id})
- ❌정렬
- ❌검색
- ❌아이템올리기
- ❌아이템내리기
- ❌구입
- ❌페이징
user
- ❌회원가입
- ❌로그인
- ❌유저정보
- ❌정보불러오기
- ❌가지고있는 아이템
- ❌경매장에 올린아이템
- ❌개인정보 변경
- ❌돈충전
- ❌로그아웃
#### item
- ❌아이템 정보
- ❌아이템 생성
- ❌아이템 제거
- ❌아이템 정보수정
3.AuctionAPI
우선경매장에 보이게 될 아이템들에 대한 API를 제작해주기로하였다.
3-1.DTO
옥션에 보일때 필요한 데이터들을 DTO로 따로 만들었다.
package com.example.dto;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class AuctionDTO {
private Long id;
private LocalDateTime auctionDate;
private Integer auctionPrice;
private String itemName;
private String itemDescription;
private Integer itemCount;
private String userName;
}
3-2.컨트롤러
옥션의 전체 물품을 호출하는 API와 개별 옥션물품을 호출하는 API를 만들었고 DTO를 통해 반환한다.
@GetMapping("/")
public List<AuctionDTO> getAutionItems(){
return auctionService.getAutionItems();
}
@GetMapping("/{id}")
public AuctionDTO getAutionItemById(@PathVariable("id") Long id){
return auctionService.getAutionItemById(id);
}
3-3.서비스
JPA 를 통하여 자동으로 만들어진 레포지토리의 메소드를 이용하여 얻은 데이터를 DTO 로 변환하여 반환한다.
public List<AuctionDTO> getAutionItems(){
return auctionRepository.findAll().stream()
.map(this::convertDTO) // 변환 메서드를 사용해 DTO로 변환
.collect(Collectors.toList());
}
public AuctionDTO getAutionItemById(Long id){
Auction auction=auctionRepository.findById(id).get();
return convertDTO(auction);
}
private AuctionDTO convertDTO(Auction auction){
AuctionDTO auctionDTO = new AuctionDTO();
auctionDTO.setId(auction.getId());
auctionDTO.setAuctionPrice(auction.getAuctionPrice());
auctionDTO.setAuctionDate(auction.getAuctionDate());
auctionDTO.setItemName(auction.getItem().getName());
auctionDTO.setItemDescription(auction.getItem().getDescription());
auctionDTO.setItemCount(auction.getItemCount());
auctionDTO.setUserName(auction.getAuctionuser().getUsernickname());
return auctionDTO;
}
3-4.확인
Swagger에서 만든 API를 확인해보았다.
728x90
'BackEnd > SpringBoot' 카테고리의 다른 글
[SpringBoot] RESTAPI CRUD 구현법 경매장#5 (0) | 2024.11.03 |
---|---|
[SpringBoot] @Autowired 와 의존성주입 (0) | 2024.10.20 |
[SpringBoot] 컨트롤러,서비스,레포지토리 관계 데이터 흐름 (0) | 2024.10.20 |