퐁당 웹 매거진 프로젝트 제작 일지 <11>
2023.10.18 (WED)
1. 검색용 DB 생성 후, 불러오기 테스트
리액트와 스프링부트 연동을 하는데, 중점을 두었다.
예제로, 테이블의 json을 받아와 출력하도록 하였다.
Result.js
import React, { useEffect, useState } from 'react';
import "./Result.css";
export default function SearchBar() {
const [interviews, setInterviews] = useState([]);
useEffect(() => {
fetch('/v1/interview') // Endpoint
.then(response => response.json())
.then(data => setInterviews(data))
.catch(error => console.error(error));
}, [])
return (
<div className="Result_Search">
{/* interviews 배열에 맞게 데이터 렌더링 */}
{interviews.map(interview => (
<div key={interview.id}>
<h3>{interview.interview_title}</h3>
<p>{interview.interviewee}</p>
</div>
))}
</div>
)
}
InterviewController.java
@RestController // Json 형태 결과값 반환
@RequiredArgsConstructor // final 객체를 Constructor Injection (Autowired 역할)
@RequestMapping("/v1") // version1의 api
public class InterviewController {
private final InterviewRepository interviewRepository;
/**
* 조회
*
* @return
*/
@GetMapping("interview")
public List<InterviewEntity> findAllInterview() {
return interviewRepository.findAll();
}
}
결과 화면
