Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
0
respuestas

Haz como yo hice

com.fasterxml.jackson.core jackson-databind 2.15.2

package service;

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 ConsumoAPI {

public String obtenerDatos(String direccion) {
    HttpClient client = HttpClient.newHttpClient();

    HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create(direccion))
            .build();

    HttpResponse<String> response;
    try {
        response = client.send(request, HttpResponse.BodyHandlers.ofString());
        return response.body();
    } catch (IOException | InterruptedException e) {
        throw new RuntimeException("No se pudieron obtener los datos de la API");
    }
}

package service;

public interface IConvierteDatos {
T obtenerDatos(String json, Class clase);
}

package service;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class ConvierteDatos implements IConvierteDatos {

private ObjectMapper objectMapper = new ObjectMapper();

@Override
public <T> T obtenerDatos(String json, Class<T> clase) {
    try {
        return objectMapper.readValue(json, clase);
    } catch (JsonProcessingException e) {
        throw new RuntimeException("Error al convertir el JSON a objeto Java");
    }
}

}

package model;

import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown = true)
public record DatosSerie(
@JsonAlias("Title") String titulo,
@JsonAlias("Year") String anio,
@JsonAlias("Genre") String genero,
@JsonAlias("Plot") String sinopsis,
@JsonAlias("imdbRating") String evaluacion
) {
}

import java.util.Scanner;

public class Principal {
public static void main(String[] args) {

    Scanner teclado = new Scanner(System.in);
    ConsumoAPI consumo = new ConsumoAPI();
    ConvierteDatos conversor = new ConvierteDatos();

    String direccionBase = "https://www.omdbapi.com/?t=";
    String apiKey = "&apikey=TU_API_KEY";

    System.out.println("Escribe el nombre de la serie:");
    String nombreSerie = teclado.nextLine();

    String json = consumo.obtenerDatos(direccionBase + nombreSerie.replace(" ", "+") + apiKey);

    DatosSerie datos = conversor.obtenerDatos(json, DatosSerie.class);

    System.out.println("\n***** DATOS DE LA SERIE *****");
    System.out.println("Título: " + datos.titulo());
    System.out.println("Año: " + datos.anio());
    System.out.println("Género: " + datos.genero());
    System.out.println("Sinopsis: " + datos.sinopsis());
    System.out.println("Evaluación: " + datos.evaluacion());
}

}