Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Vamos de código - Gson aí....


    public static void main(String[] args) throws IOException, InterruptedException {
        Scanner leitura = new Scanner(System.in);
        System.out.println("Nome do Filme para pesquisar:");
        String endpoint = "https://omdbapi.com/?t=";
        String key = "&apiKey=db82e186";
        var filmeBusca = leitura.nextLine();
        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create( endpoint+filmeBusca+key))
                .build();
          HttpResponse<String> response = client
                .send(request, HttpResponse.BodyHandlers.ofString());
          String json = response.body();
          System.out.println(json);

        Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE).create();
        TituloOMDB meuTituloOmdb = gson.fromJson(json, TituloOMDB.class);
        System.out.println(meuTituloOmdb);
        Titulo meuTitulo = new Titulo(meuTituloOmdb);
        System.out.println(meuTitulo);
    }
package br.souza.marcus.screenmatch.modelos;

public record TituloOMDB(String title, String year, String runtime) {
}
    public Titulo(TituloOMDB meuTituloOmdb) {
        this.nome = meuTituloOmdb.title();
        this.anoLancamento = Integer.parseInt(meuTituloOmdb.year());
        this.duracaoMinutos = Integer.parseInt(meuTituloOmdb.runtime().substring(0,2));
    }
    
    
    // codigo ocultado
    
    
    @Override
    public String toString() {
        return "Titulo{" +
                "nome='" + nome + '\'' +
                ", anoLancamento=" + anoLancamento +
                ", duracaoMinutos=" + duracaoMinutos +
                '}';
    }
1 resposta
solução!

Olá Marcus, tudo bem?

Obrigado por compartilhar sua solução para o desafio! Seu código parece estar bem estruturado e faz bom uso da biblioteca Gson para converter a resposta JSON da API em um objeto Java.

Aqui estão algumas observações sobre seu código:

Você criou uma classe TituloOMDB para representar a estrutura dos dados retornados pela API. Isso é uma ótima prática, pois permite que você trabalhe com os dados como objetos Java, em vez de lidar diretamente com o JSON. Você está usando a classe Gson para converter a resposta JSON em um objeto TituloOMDB. Isso é feito chamando o método fromJson() na instância Gson. Você está usando a classe HttpClient para enviar uma solicitação HTTP para a API e receber a resposta. Isso é uma boa prática ao trabalhar com APIs HTTP. Você está usando a classe Scanner para ler a entrada do usuário. Isso permite que o usuário pesquise por um filme específico. Você está criando uma instância da classe Titulo a partir do objeto TituloOMDB. Isso permite que você trabalhe com os dados em um formato que é mais conveniente para o seu aplicativo. Espero que isso ajude! Se você tiver mais perguntas ou precisar de mais feedback, fique à vontade para perguntar.