- 기존의 wishListEntity 그대로 쓰지않고, 복붙해서 wishListDto 를 만듦
- (extends MemoryDbEntity 없애고 index요소추가 )
- 분리이유 : db의 entity가 변경되어버리면 프론트엔드 변수명까지 영향미침
- 분리하면 중간변환과정만 있으면 되서 분리시킴
- ApiController만든후 search넣음됨
@RestController
@RequestMapping("/api/restaurant")
@RequiredArgsConstructor
public class ApiController {
private final WishListService wishListService;
@GetMapping("/search")
public WishListDto search(@RequestParam String query){
return wishListService.search(query);
}
}
- springfox boot start 설치 후 http://localhost:8080/swagger-ui/ ㄱㄱ
implementation group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0'
- 위시리스트 추가, 방문추가, 삭제 기능 추가하면 됨
1. 위시리스트 추가
- apiController >> add 추가(body로 wishListDto받음) , WishListService > add추가
- dto 를 entity로 바꾸고나서 저장하는 기능 넣음 됨
[WishListService.java]
private final NaverClient naverClient;
private final WishListRepository wishListRepository;
public WishListDto add(WishListDto wishListDto) {
//dto 를 entity로 바꾸고나서 저장하면 됨
var entity = dtoToEntity(wishListDto);
var saveEntity = wishListRepository.save(entity);
return entityToDto(saveEntity);
}
private WishListEntity dtoToEntity(WishListDto wishListDto){
var entity = new WishListEntity();
entity.setIndex(wishListDto.getIndex());
entity.setTitle(wishListDto.getTitle());
entity.setCategory(wishListDto.getCategory());
entity.setAddress(wishListDto.getAddress());
entity.setRoadAddress(wishListDto.getRoadAddress());
entity.setHomePageLink(wishListDto.getHomePageLink());
entity.setImageLink(wishListDto.getImageLink());
entity.setVisit(wishListDto.isVisit());
entity.setVisitCount(wishListDto.getVisitCount());
entity.setLastVisitDate(wishListDto.getLastVisitDate());
return entity;
}
private WishListDto entityToDto(WishListEntity wishListEntity){
var dto = new WishListDto();
dto.setIndex(wishListEntity.getIndex());
dto.setTitle(wishListEntity.getTitle());
dto.setCategory(wishListEntity.getCategory());
dto.setAddress(wishListEntity.getAddress());
dto.setRoadAddress(wishListEntity.getRoadAddress());
dto.setHomePageLink(wishListEntity.getHomePageLink());
dto.setImageLink(wishListEntity.getImageLink());
dto.setVisit(wishListEntity.isVisit());
dto.setVisitCount(wishListEntity.getVisitCount());
dto.setLastVisitDate(wishListEntity.getLastVisitDate());
return dto;
}
}
2. controller , service >. findAll추가
@GetMapping("/all")
public List<WishListDto>findAll(){
return wishListService.findAll();
}
}
=====================
public List<WishListDto> findAll() {
return wishListRepository.listAll()
.stream()
.map(it -> entityToDto(it))
.collect(Collectors.toList());
}
3. 방문추가
public void addVisit(int index){
var wishItem = wishListRepository.findById(index);
if(wishItem.isPresent()){
var item = wishItem.get();
item.setVisit(true);
item.setVisitCount(item.getVisitCount() + 1);
}
}
=======================
@PostMapping("/${index}")
public void addVisit(@PathVariable int index){
wishListService.addVisit(index);
}
4.위시리스트 삭제 기능
public void delete(int index) {
wishListRepository.deleteById(index);
}
========================
@DeleteMapping("/{index}")
public void delete(@PathVariable int index){
wishListService.delete(index);
}
}
댓글 영역