
먼저 팀원분이 만드신 ApiFetch를 import해와야한다. 그래야 내가 만든 js파일에서도 사용할 수 있기 때문!
import { ApiFetch } from "./movie.js"
이제 영화 상세 데이터를 가져오는 함수를 작성해야한다.
const fetchMovieDetails = async (movieId) => {
const url = `/3/movie/${movieId}?append_to_response=credits,release_dates`;
이제 데이터를 가져왔으면, 화면에 표시하는 함수도 작성해야한다.
const displayMovieDetails = (movieDetails, movieCertifications) => {
// detail_main 요소 선택
const detailMain = document.querySelector('.detail_main');
영화 감독 데이터와 출연 배우 데이터를 추출해오는 코드는 생략하기로 하고, html 요소의 일부 코드를 보여주자면 다음과 같다.
// detail_main 요소의 innerHTML을 채워 넣음
detailMain.innerHTML = `
<div class="img_container">
<img src="https://image.tmdb.org/t/p/w500${movieDetails.poster_path}"
alt="${movieDetails.title}" class="detail_img">
<img src="https://image.tmdb.org/t/p/w500${movieDetails.poster_path}"
alt="${movieDetails.title}" class="detail_main_img">
</div>
마지막으로 영화 상세 페이지에서 필요한 데이터를 가져와서 화면에 구현하는 과정이다.
// URL에서 영화 ID 가져오기
const urlParams = new URLSearchParams(window.location.search);
const movieId = urlParams.get('id');
// TMDB API를 사용하여 영화 상세 데이터 가져오기
Promise.all([
fetchMovieDetails(movieId),
getMovieCertifications(movieId) // 관람 등급 정보도 가져오기
])
.then(([movieDetails, movieCertifications]) => {
// 영화 상세 데이터를 화면에 표시하기
displayMovieDetails(movieDetails, movieCertifications);