MIGRACIION DE LINEAS DE CODIGO HACIA LA CLASE PRINCIPAL
public class PRINCIPAL {
//DECLARACION DE VARIABLES
private Scanner teclado = new Scanner(System.in);
private ConsumoAPI consumoApi = new ConsumoAPI();
private final String URL_BASE = "https://www.omdbapi.com/?t=";
private final String API_KEY = "&apikey=XXXXXXX";
private ConvirteDatos conversor = new ConvirteDatos();
//METODO PARA PODER VIZUALIZAR UN MENU
public void muestraMENU(){
//SECCION DE PETICION AL USUARIO
System.out.println("ESCRIBE LQA SERIE QUE DESEAS BUSCAR");
//BUSCANDO LOS DATOS GEBERALES DE LA SERIE
var nombreDeSerie = teclado.nextLine();
var json = consumoApi.obtenerDatos(URL_BASE + nombreDeSerie.replace(" ", "+")+API_KEY);// AQUI SE TRATA UN POSOBLE ERROR
//el usuario al escribir un nombre, escribira palabras seguidas de espacio, esto se trata con replace ( " ", "+" )
System.out.println(json);
//SECCION DE CONVERTIDOR DE DATOS API A json
var datos = conversor.obtenerDatos(json, DatosDeLaSerie.class);
System.out.println(datos);
//BUCANDO DATOS DE TEMPORADAS
List<DatosDeTemporadas> temporadas = new ArrayList<>();
for (int i = 1; i <= datos.totalDeTemporadas() ; i++) {
json = consumoApi.obtenerDatos(URL_BASE + nombreDeSerie.replace(" ", "+")+"&Season="+i+API_KEY);
var datosDeTemporadas =conversor.obtenerDatos( json, DatosDeTemporadas.class );
temporadas.add(datosDeTemporadas);
}
temporadas.forEach(System.out::println);
//mostrar titulo de los episodios para las temporadas
for (int i = 0; i < datos.totalDeTemporadas(); i++) { //i para las temporadas
List<DatosDeEpisodio> episidiosXtemporada = temporadas.get(i).episodios();
for (int j = 0; j < episidiosXtemporada.size() ; j++) { //j para las temporadas, episidiosXtemporada.size() para pasar el numero de episodios por temporada
System.out.println(episidiosXtemporada.get(j).titulo());
}
}
//funciones LAMDAS
System.out.println("-----------------------------------------------------------------------------------------------");
temporadas.forEach(t -> t.episodios().forEach(e -> System.out.println(e.titulo())));
}
}
CLASE SCRENMACHT SIN LAS LINEAS DE CODIGO
package com.oasb.Screen_Macht;
import com.oasb.Screen_Macht.Modelo.DatosDeEpisodio;
import com.oasb.Screen_Macht.Modelo.DatosDeLaSerie;
import com.oasb.Screen_Macht.Modelo.DatosDeTemporadas;
import com.oasb.Screen_Macht.PRINCIPAL.PRINCIPAL;
import com.oasb.Screen_Macht.Servcio.ConsumoAPI;
import com.oasb.Screen_Macht.Servcio.ConvirteDatos;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import java.util.ArrayList;
import java.util.List;
@SpringBootApplication
public class ScreenMachtApplication implements CommandLineRunner { //implementacion de interface CommandalineRunner
public static void main(String[] args) {
SpringApplication.run(ScreenMachtApplication.class, args);
}
@Override //se sobrescribe el metodo de la interface
public void run(String... args) throws Exception {
PRINCIPAL principal =new PRINCIPAL();
principal.muestraMENU();
}
}