Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

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());
}

}

1 respuesta

Hola David,

Gracias por compartir tu código con nosotros. Es muy bueno ver cómo vas poniendo en práctica lo que aprendes.

Te recomiendo que puedas interactuar con el resto de nuestros compañeros por nuestro Discord.

En virtud de que en Discord el alcance es mayor, la interacción es inmediata y llega a más compañeros, y el foro solo quedaría para esclarecer cualquier duda que puedas tener sobre el contenido de los cursos.

De esa manera, si quieres seguir compartiendo tus soluciones y proyectos, sea por el Discord — con certeza por ahí llegará a más personas.

¡Gracias nuevamente!

Saludos,

Si este post te ayudó, por favor, marca como solucionado ✓. ¡Continúa con tus estudios!