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

Haga lo que hicimos: aplicando interacción con el usuario

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

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

1 respuesta

¡Hola! ¿Cómo estás?

Gracias por tu aporte en el foro. Su contribución es esencial para el crecimiento de nuestra comunidad en Alura.

Sigue así y no dudes en volver al foro si tienes alguna pregunta o dificultad.

Abrazos y buenos estudios!

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