1
resposta

[Projeto] Faça como eu fiz: consumindo a API do OMDb

Segue a resoluçãodo exercício.

package br.com.alura.screenmatch.principal;

import java.io.IOException;
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;

public class PrincipalComBusca {
    public static void main(String[] args) throws IOException, InterruptedException {
        Scanner sc = new Scanner(System.in);
        System.out.println("Digite o nome do filme: ");
        String nomeFilme = sc.nextLine();
        //Trecho incluído em função de a url não aceitar espaços:
        String nomeFilmeCodificado = URLEncoder.encode(nomeFilme, StandardCharsets.UTF_8);

        String OMDB_API_KEY = "api_key";
        String endereco = "https://www.omdbapi.com/?t=" + nomeFilmeCodificado + "&apikey=" + OMDB_API_KEY;

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

        System.out.println(response.body());
        sc.close();
    }
}

Output:

Digite o nome do filme: 
Forrest Gump
{"Title":"Forrest Gump","Year":"1994","Rated":"PG-13","Released":"06 Jul 1994","Runtime":"142 min","Genre":"Drama, Romance",
"Director":"Robert Zemeckis","Writer":"Winston Groom, Eric Roth","Actors":"Tom Hanks, Robin Wright, Gary Sinise",
"Plot":"The history of the United States from the 1950s to the '70s unfolds from the perspective of an Alabama man with an IQ of 75, who yearns to be reunited with his childhood sweetheart.",
"Language":"English","Country":"United States","Awards":"Won 6 Oscars. 51 wins & 74 nominations total",
"Poster":"https://m.media-amazon.com/images/M/MV5BNDYwNzVjMTItZmU5YS00YjQ5LTljYjgtMjY2NDVmYWMyNWFmXkEyXkFqcGc@._V1_SX300.jpg",
"Ratings":[{"Source":"Internet Movie Database","Value":"8.8/10"},{"Source":"Rotten Tomatoes","Value":"75%"},{"Source":"Metacritic","Value":"82/100"}],"Metascore":"82","imdbRating":"8.8","imdbVotes":"2,452,716","imdbID":"tt0109830","Type":"movie","DVD":"N/A","BoxOffice":"$330,455,270","Production":"N/A","Website":"N/A","Response":"True"}

Process finished with exit code 0
1 resposta

Oi, Raoni! Como vai?

Agradeço por compartilhar.

Gostei da sua solução. Muito bom quando você explicou o uso do URLEncoder pra tratar os espaços na URL, isso mostra cuidado com a forma como a requisição é enviada à API. A construção da requisição e o uso do HttpClient ficaram claros e bem organizados.

Continue explorando esse tipo de integração, isso fortalece bastante sua base em Java e consumo de APIs.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!