4
respostas

[Dúvida] Desafio 1-7 Java


import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws IOException, InterruptedException {
        Scanner scanner = new Scanner(System.in);
        //String busca = "";
        String link = "https://api.themoviedb.org/3/search/movie?query=";
        String apiKey = "&api_key=1d07620f21e10ff67b727a005120880c";

        System.out.println("Nome do filme: ");
        var busca = scanner.nextLine();

        String endereco = link + busca.replace(" ", "+") + apiKey;

            HttpClient client = HttpClient.newHttpClient();
            HttpRequest request = HttpRequest.newBuilder()
                    .uri(URI.create(endereco))
                    .build();
            HttpResponse<String> response = client
                    .send(request, HttpResponse.BodyHandlers.ofString());

            String json = response.body();
            System.out.println(json);
    }
}

Até qui eu tenho as informações do JSON né? mas oque exatamente eu tenho que fazer para pedir os top 250 filmes? Eu não entendi muito bem qual o exercicio desse primeiro, é só isso? ou eu tenho que conceguir os top 250?

4 respostas

Olá, Rafael! Joia?

Se o exercício pede especificamente para obter os top 250 filmes, você precisaria alterar como está fazendo a requisição para a API.

Infelizmente, com base na API do The Movie Database (TMDB) que você está usando, não há um endpoint direto para buscar os top 250 filmes. Normalmente, essas listas são específicas de serviços como o IMDb. No entanto, você pode utilizar o endpoint de filmes populares ou bem avaliados para obter uma lista de filmes de alta qualidade.

Aqui está um exemplo de como você poderia modificar seu código para buscar filmes populares, que poderiam ser uma aproximação dos top filmes:

import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Main {
    public static void main(String[] args) throws IOException, InterruptedException {
        String link = "https://api.themoviedb.org/3/movie/popular?";
        String apiKey = "api_key=1d07620f21e10ff67b727a005120880c";
        String language = "&language=en-US&page=1";

        String endereco = link + apiKey + language;

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(endereco))
                .build();
        HttpResponse<String> response = client
                .send(request, HttpResponse.BodyHandlers.ofString());

        String json = response.body();
        System.out.println(json);
    }
}

Neste código, substituí a busca por filme específico por uma requisição ao endpoint de filmes populares. Você pode ajustar os parâmetros, como language e page, conforme necessário.

Se o exercício requer realmente os top 250 filmes, seria bom verificar se há instruções mais específicas ou se outra API seria mais apropriada para essa tarefa.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Ok, nesse caso ele pega os top filmes, tinha mes esquecido disso... kkk

Mas eu não estou usando o IMDB (que é a citada no desafio) porque parece que ela não é mais gratuita, então falando com o pessoal do Discord eu achei esse TMDB que também estão usando, mas aparentemente ele não me devolve 250 filme, ou pelo menos eu não sei como pedir isso para a API, poderia me dar uma ajuda?

Alias, é necessario essa linha indicando a lingua? eu gostaria de pegar os top movies independente da linguagem, não?

"String language = "&language=en-US&page=1";"

Opa, agora que me toquei, a API do IMDB é essa OMDB que usamos nas aulas ou to viajando? Com a do OMDB eu consngo mas informações, posso fazer com ela?

Bom dia, Rafael!

Exatamente isso, a API OMDB é propriedade da IMDB, então os valores e informações presentes na plataforma do IMDB estarão presentes na API OMDB, com limitações de requisições diárias e necessidade de APIKEY para fazer as requisições.

Porém, infelizmente, o OMDB não disponibiliza um serviço de lista de filmes ou algo do tipo. Ele trabalha exclusivamente com busca de filmes individuais. Então para busca da lista dos melhores 250 filmes você teria que fazer de forma manual. Ou utilize a API "https://api.themoviedb.org" que já vinha utilizando anteriormente.