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