Postman Collection (JSON): https://drive.google.com/file/d/1-XTGY4lhLcuHi5ylLfhp9iycffDdoaxo/view?usp=sharing
1 - Faz a busca de filmes através de uma {{KEY_WORD}}, ordena por ordem decrescente e lista um objeto com as principais informações
Endpoint:
https://api.themoviedb.org/3/search/movie?query={{KEY_WORD}}
async function getMoviesByName(name) {
try {
const response = await fetch(url);
if (!response.ok) throw new Error('Erro na requisição à API');
const responseData = await response.json();
const movieData = responseData.results.map(({ id, title, poster_path, vote_average }) => ({
id,
title,
posterUrl: `https://image.tmdb.org/t/p/w500/${poster_path}`,
vote_average
}));
const sortedMovies = movieData.sort((a, b) => b.vote_average - a.vote_average);
return sortedMovies;
} catch (error) {
console.error('Erro:', error.message);
return [];
}
}
Endpoint:
https://api.themoviedb.org/3/movie/{{MOVIE_ID}}
async function getMovieByID(movie_id) {
try {
const response = await fetch(url);
if (!response.ok) {
throw new Error('Erro ao buscar o filme');
}
const data = await response.json();
return data.vote_count;
} catch (error) {
console.error('Erro na requisição:', error.message);
}
}
3 - Através de um MOVIE_ID, buscar o trailer do filme e criar uma URL do YouTube para visualizar o video no navegador
Endpoint:
https://api.themoviedb.org/3/movie/{{MOVIE_ID}}/videos
async function getMovieTrailerByID(movie_id) {
try {
const response = await fetch(url);
if (!response.ok) {
throw new Error('Erro ao buscar vídeos');
}
const data = await response.json();
if (data.results && data.results.length > 0) {
const videoKey = data.results[0].key;
console.log(`Trailer disponível em: https://www.youtube.com/watch?v=${videoKey}`);
} else {
console.log('Nenhum vídeo encontrado para este filme.');
}
} catch (error) {
console.error('Erro na requisição:', error.message);
}
}
Endpoint
https://api.themoviedb.org/3/movie/popular
async function getPopularMovies() {
try {
const response = await fetch(url);
if (!response.ok) {
throw new Error('Erro ao buscar filmes populares');
}
const data = await response.json();
if (data.results && data.results.length > 0) {
data.results.map(({id, title, release_date, overview}) => {
{
id,
title,
release_date,
overview
}
});
} else {
console.log('Nenhum filme popular encontrado.');
}
} catch (error) {
console.error('Erro na requisição:', error.message);
}
}
Endpoint 1 - Busca gêneros:
https://api.themoviedb.org/3/genre/movie/list
Endpoint 2 - Busca filmes por {{GENRE_ID}}
https://api.themoviedb.org/3/discover/movie?with_genres={{GENDER_ID}}
async function fetchGenres() {
const genreUrl = 'https://api.themoviedb.org/3/genre/movie/list';
try {
const response = await fetch(genreUrl);
if (!response.ok) throw new Error('Erro ao buscar gêneros');
const data = await response.json();
if (!data.genres || data.genres.length === 0) throw new Error('Nenhum gênero encontrado.');
return data.genres;
} catch (error) {
console.error('Erro ao buscar gêneros:', error.message);
return [];
}
}
async function fetchMoviesByGenre(genre_id) {
const movieUrl = `https://api.themoviedb.org/3/discover/movie?with_genres=${genre_id}`;
try {
const response = await fetch(movieUrl);
if (!response.ok) throw new Error(`Erro ao buscar filmes para o gênero ${genre_id}`);
const data = await response.json();
if (!data.results || data.results.length === 0) throw new Error('Nenhum filme encontrado para esse gênero.');
return data.results.map(({id, title, poster_path}) => ({
id,
title,
poster_path: `https://image.tmdb.org/t/p/w500/${poster_path}`
}));
} catch (error) {
console.error('Erro ao buscar filmes:', error.message);
return [];
}
}
Endpoint
https://api.themoviedb.org/3/discover/movie?release_date.gte={{RELEASE_DATE}}
async function getMoviesByReleaseDate(release_date) {
try {
const response = await fetch(url);
if (!response.ok) {
throw new Error('Erro ao buscar filmes populares');
}
const data = await response.json();
if (data.results && data.results.length > 0) {
data.results.map(({id, title, release_date, overview}) => {
{
id,
title,
release_date,
overview
}
});
} else {
console.log('Nenhum filme em alta encontrado.');
}
} catch (error) {
console.error('Erro na requisição:', error.message);
}
}
Endpoint
https://api.themoviedb.org/3/movie/now_playing
async function getNowPlayingMovies() {
try {
const response = await fetch(url);
if (!response.ok) throw new Error('Erro na requisição à API');
const responseData = await response.json();
const nowPlayingMovies = responseData.results.map(({ id, title, release_date, vote_average, overview }) => ({
id,
title,
release_date,
vote_average,
overview
}));
return nowPlayingMovies;
} catch (error) {
console.error('Erro:', error.message);
return [];
}
}
Endpoint:
https://api.themoviedb.org/3/search/movie?query={{KEY_WORD}}
async function searchMoviesByKeyWord(keyword) {
try {
const response = await fetch(url);
if (!response.ok) throw new Error('Erro na requisição à API');
const responseData = await response.json();
const movies = responseData.results.map(({ id, title, release_date, vote_average, overview }) => ({
id,
title,
release_date,
vote_average,
overview
}));
return movies;
} catch (error) {
console.error('Erro:', error.message);
return [];
}
}