1. [PerfumePedia] React - Spring boot Cors 해결 (완료)
2. [PerfumePedia] Controller를 위한 Service 기반 작성 (진행중)
React에 아래의 코드 추가
const { createProxyMiddleware } = require('http-proxy-middleware');
Spring & React 개발환경 연동에서 자세히 볼 수 있음(경은 땡큐)
Dto를 감싸기 위한 Record ResponseData 생성
Record에 대해 공부 필요.
public record ResponseData<T>(T data) {
/**
* 생성 및 초기화 진행
* @param data T 객체
*/
public ResponseData {
}
}
자동완성 서비스 작성
@Service
@Transactional(readOnly = true)
@RequiredArgsConstructor
public class AutoCompleteService {
private final WordRepository wordRepository;
/**
* 사용자가 입력한 keyword에 해당하는 검색어목록을 반환하는 함수입니다.
* <p> word 엔티티로부터 weight 기준 내림차순으로 반환합니다.
* @param keyword 사용자가 입력한 keyword입니다. 예) 조말론
* @return AutoCompleteWordDto 객체를 반환합니다.
*/
public ResponseData findKeywords(String keyword){
AutoCompleteWordDto autoCompleteWordDto = new AutoCompleteWordDto();
// WordRepository #findByAlias 사용
// #findByAlias에 의해 Word 객체 List 반횐됨
// 자동으로 5개 이하의 결과가 반환되며, desc sort 돼 있음
List<Word> words = wordRepository.findByAlias(keyword);
// AutoCompleteWordDto #set 메소드들을 활용해 초기화 진행
// ResponseData 객체화
ResponseData data = new ResponseData(autoCompleteWordDto);
// 객체화한 ResponseData 반환
return data;
}
}