일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 노트북추천받기
- 백엔드
- 실기문제풀이
- 실기문제
- 네트워크관리사2급
- 실기시험예제
- C언어
- 프로그래밍
- 굿노트
- 인강용노트북
- 가성비노트북
- 행정관리사
- C언어배우기
- 네트워크관리사2급실기문제
- 노트북추천
- 행정관리사3급공부
- 노트북구매하기
- 콜오브듀티
- 코딩
- 행정관리사3급
- 실기시험
- 심플한플래너
- 네트워크관리사
- 총게임
- 행정관리사합격하기
- 개발자
- 네트워크관리사2급실기
- 저렴한노트북
- 자바스크립트
- Today
- Total
잡다한 사전
[개인 프로젝트 1][23,10,19] TMDB API를 이용해서 영화 리스트 가져오기 본문
[개인 프로젝트 1][23,10,19] TMDB API를 이용해서 영화 리스트 가져오기
잡사전집사 2023. 10. 19. 23:51이번에는 TMDB를 이용해서 영화리스트를 가져와서 페이지에 나타내 주려고 합니다.
*TMDB API란,
TMDB API는 가장많이 사용하는 영화 정보 오픈 API 입니다. 기본적으로 감독, 출연진, 포스터 등 정보를 무료로 사용이 가능합니다.
(TMDB에서 API를 사용하기 위해서는 회원가입을 해주어야 합니다.)
TMDB Site : https://www.themoviedb.org/
const options = {
method: "GET",
headers: {
accept: "application/json",
Authorization:
"개인 API",
},
};
Top rate list api를 이용하기 위해서 "<>API Reference"로 들어가셔서 "Movie list"에 있는 영화 API 요청 코드를 복사해서 사용해 주었습니다.
const url =
"https://api.themoviedb.org/3/movie/top_rated?language=en-US&page=1";
fetch 레퍼런스를 가지고 option과 url을 넣어주어야 하는데, 이때 주소를 바로 넣지 않고, 주소 값을 const url에 넣어주었습니다.
Fetch api 데이터 가져오기
fetch(url, options)
.then((response) => response.json())
.then((data) => {
let rows = data["results"];
const cardList = document.querySelector(".card-list");
cardList.innerHTML = "";
rows.forEach((a) => {
let _title = a["title"];
let _overview = a["overview"];
let _poster_path = a["poster_path"];
let _vote_average = a["vote_average"];
let _id = a["id"];
let temp_html = `
<div class="col">
<div class="card movie-card" data-id="${_id}">
<img src="https://image.tmdb.org/t/p/w500${_poster_path}">
<h3>${_title}</h3>
<p>${_overview}</p>
<p>Rating: ${_vote_average}</p>
</div>
</div>
`;
cardList.insertAdjacentHTML("beforeend", temp_html);
//console.log(temp_html);
});
fetch에 선언해주는 url과 option을 가져오고 json 방식으로 가져오는 데이터를 let rows를 선언하여 배열로 담아주었다.
Foreach 문은 한번 반복을 수행할 때마다 배열을 차례대로 접근해서 변수에다가 담아주는 것으로 이를 이용해서 데이터를 담아서 ``(변수와 문자를 함계사용할 수 있는 백틱)을 이용해서 temp_html에 담아서 html에 추가를 해주었다.
insertAdjacentHTML() 인터페이스의 메소드는 지정된 Element 텍스트를 HTML 또는 XML로 구문 분석하고 결과 노드를 지정된 위치에 DOM 트리에 삽입하는 메소드 입니다.
클릭 이벤트로 alert id 띄어주기
조건 : 각 카드를 클릭 시 해당하는 id 값을 alert으로 띄어주어야 합니다.
const movieCards = document.querySelectorAll(".movie-card"); // :CSS 선택자를 이용하여 모든 요소를 선택합니다.
movieCards.forEach((card) => {
card.addEventListener("click", function () {
let movieId = this.getAttribute("data-id"); // : 해당 요소의 속성 값을 가져옵니다.
alert(`영화 id: ${movieId}`);
});
});
querytSelectorAll()을 이용해서 선택한 모든 요소를 가져온 뒤 element.getAttribute()를 이용해서 해당 요소의 속성 값이 id 값을 가져와서 클릭할 시 alert을 이용해서 id 값을 나타내 주었습니다.
개인프로젝트를 하면서..
javascript를 이용해서 api를 연결해서 데이터를 띄우고, 데이터를 불러오는 작업을 하면서 생각보다 오류가 나는 부분이 많다는 것을 알았으며, api를 이용해서 보다 간단하게 데이터를 가져올 수 있다는 것을 알았다.
'프로그래밍 언어 > Javascript & firebase' 카테고리의 다른 글
(2023.12.19) Typescript는 무엇일까? (48) | 2023.12.20 |
---|---|
(2023.11.13) Middleware로 사용자 인증하기 (0) | 2023.11.14 |
[1-1] 자바스크립의 특징 (0) | 2023.10.16 |
웹페이지 좋아요 기능 (firebase realtime database) (1) | 2023.10.11 |
(C프로그래밍) 1~45 사이의 7개 수 랜덤으로 출력받기 (2) | 2021.01.08 |