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

import java.util.Scanner;

public class Principal {
private Scanner teclado = new Scanner(System.in);
private ConsumoApi consumoApi = new ConsumoApi();
private ConvierteDatos conversor = new ConvierteDatos();

private final String URL_BASE = "https://www.omdbapi.com/?t=";
private final String API_KEY = "&apikey=TU_API_KEY";

public void muestraElMenu() {
    System.out.println("Escribe el nombre de la serie que deseas buscar:");
    var nombreSerie = teclado.nextLine();

    var json = consumoApi.obtenerDatos(URL_BASE + nombreSerie.replace(" ", "+") + API_KEY);
    DatosSerie datos = conversor.obtenerDatos(json, DatosSerie.class);

    Serie serie = new Serie(datos);

    System.out.println("\nDatos de la serie:");
    System.out.println(serie);
}

}

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("imdbRating") String evaluacion,
@JsonAlias("totalSeasons") Integer totalTemporadas,
@JsonAlias("Genre") String genero,
@JsonAlias("Actors") String actores,
@JsonAlias("Poster") String poster,
@JsonAlias("Plot") String sinopsis
) {
}

public class Serie {
private String titulo;
private Integer totalTemporadas;
private Double evaluacion;
private String genero;
private String actores;
private String poster;
private String sinopsis;
private String anio;

public Serie(DatosSerie datos) {
    this.titulo = datos.titulo();
    this.totalTemporadas = datos.totalTemporadas();
    this.anio = datos.anio();
    this.genero = datos.genero();
    this.actores = datos.actores();
    this.poster = datos.poster();
    this.sinopsis = datos.sinopsis();

    try {
        this.evaluacion = Double.valueOf(datos.evaluacion());
    } catch (NumberFormatException e) {
        this.evaluacion = 0.0;
    }
}

public String getTitulo() {
    return titulo;
}

public Integer getTotalTemporadas() {
    return totalTemporadas;
}

public Double getEvaluacion() {
    return evaluacion;
}

public String getGenero() {
    return genero;
}

public String getActores() {
    return actores;
}

public String getPoster() {
    return poster;
}

public String getSinopsis() {
    return sinopsis;
}

public String getAnio() {
    return anio;
}

@Override
public String toString() {
    return "titulo='" + titulo + '\'' +
            ", anio='" + anio + '\'' +
            ", evaluacion=" + evaluacion +
            ", totalTemporadas=" + totalTemporadas +
            ", genero='" + genero + '\'' +
            ", actores='" + actores + '\'' +
            ", poster='" + poster + '\'' +
            ", sinopsis='" + sinopsis + '\'';
}

}

this.evaluacion = Double.valueOf(datos.evaluacion());

Datos de la serie:
titulo='Breaking Bad', anio='2008–2013', evaluacion=9.5, totalTemporadas=5, genero='Crime, Drama, Thriller', actores='Bryan Cranston, Aaron Paul, Anna Gunn', poster='https://...', sinopsis='A high school chemistry teacher...'

modelos/
DatosSerie.java
Serie.java
DatosTemporada.java
DatosEpisodio.java
Episodio.java

service/
ConsumoApi.java
ConvierteDatos.java

principal/
Principal.java