TIL
TIL : TMDB API 키 발급받기
오버브레이크
2023. 12. 30. 13:51
들어가며
설치 (https://docs.themeluxury.com/movieasap/getting-started/how-to-get-a-tmdb-api-key/)
오늘 이용할 데이터(https://developer.themoviedb.org/reference/movie-details)
데이터 가져오는 코드

API로부터 데이터 받아오기
1. 기본 틀을 붙여넣기 한다.
2. 발급받은 `api키`를 url에 붙여넣기 한다.
const apikey = '당신의 api 키';
const url = `https://api.themoviedb.org/3/movie/${movieId}?api_key=${apiKey}`;
3. 웹사이트를 실행한다.
다음에 의해 크롬 개발자 도구 창의 콘솔에 json형식의 데이터가 나온다.
다음과 같이 json 형식의 데이터 받아오기 성공/실패 메세지를 다음과 같이 사진으로 나타내었습니다.
// API서버로부터 응답받은 것을 json화 시킨다.
.then(response => response.json())
(1) 성공

(2) 실패
id가 4인 영화 데이터를 불러오는데 실패한다.

API의 데이터를 통해 카드 꾸미기
어떻게 할 것인지 1. 포스터 이미지 경로(poster_path) , 영화제목(original_title) , 영화요약(overview) , 영화평점(vote_average) 의 데이터가 포함 된 카드를 만들것이다. 2. 카드를 일일히 html페이지에 붙여넣기 하는것이 아니라 , javascript dom의 innerHTML을 이용해 카드를 붙여넣기 한다. |
HTML 페이지
<div id="movieListView" class="movieMiddle">
<!--
javascript DOM 을 통해 레이아웃(HTML) 을 가져와서
뿌려준다.
-->
</div>
JS 페이지
response.json() | TMDB 로부터 전달받은 데이터를 응답받은 response 을 json으로 변환한다. |
document,getElementById | 웹 문서의 아이디 선택자로 접근한다. |
innerHTML | ` `(백틱,ES6 문법)을 이용해 HTML 요소를 붙여넣기 하였다. |
const options = {
method: 'GET',
headers: {
accept: 'application/json',
Authorization: 'Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiIzODg4NzNiMWNiNDgxZjBjNjE0NTQ3MTIzM2NhNjAzNSIsInN1YiI6IjY1OGU1NDJkMTU5NTlmMzQ1YzAwMjcwNiIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.hWABdCaRlYP2t3JYO8qd7Wq9SLXqjBJHgytGI6lnLIU'
}
};
// API는 변함이 없으므로 상수로 고정
const apiKey = 'My_API키';
// movieIds 는 일단 존재하는 이미지 로 해서 붙여줌
const movieIds = [2,4,6,8];
movieIds.forEach(movieId => {
const url = `https://api.themoviedb.org/3/movie/${movieId}?api_key=${apiKey}`;
// API 명세에 따라 options를 fetch()의 ()에 추가함
fetch(url, options)
.then(response => response.json()) // 응답받을 것을 json형식으로 변환
.then(response => {
// console.log(response);
// ( 순서대로 )
/***
영화 이미지 : poster_path
영화 제목 : original_title
영화 내용 : overview
영화 평점 : vote_average
(1) document.getElementById('movieListView')
해당 HTML 문서 ,index.html 의 movieListView 아이디선택자에 접근
(2) .innerHTML
요소내에 HTML을 가져오는 메소드인데 , 여기에서는 가져와서 붙여준다.
*/
document.getElementById('movieListView').innerHTML +=
`
<div class="movieCard">
<img src="https://image.tmdb.org/t/p/original${response.poster_path} " alt="movie poster" class="mvImg" id="mv__img">
<div class="movieCarte">
<p class="mvTitle" id="mv__title">${response.original_title}</p>
<p class="mvParam" id="mv__param">${response.overview}</p>
<span class="mvRate"><small id="mv__Rate">${response.vote_average}</small></span>
</div>`;
})
// 크롬 브라우저 개발자 도구 console 창에 에러 출력
.catch(
err => console.error(err)
);
});
적용했을 때 웹페이지

TMDB 라는 영화 API를 다루는 법을 보았고
그것을 적용해보았습니다.