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 usuário

Principal.java

package com.valentina.screenmatch1.principal;

import com.valentina.screenmatch1.model.DatosEpisodio;
import com.valentina.screenmatch1.model.DatosSerie;
import com.valentina.screenmatch1.model.DatosTemporadas;
import com.valentina.screenmatch1.service.ConsumoAPI;
import com.valentina.screenmatch1.service.ConvierteDatos;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Principal {

    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=b38d6b01";
    private ConvierteDatos conversor = new ConvierteDatos();

    public void muestraElMenu(){
        System.out.println("Por favor escriba el nombre de la serie");
        //BUSCA LOS DATOS GENERALES DE LA SERIE
        var nombreSerie = teclado.nextLine();
        var json = consumoApi.obtenerDatos(URL_BASE + nombreSerie.replace(" ","+") + API_KEY);
        System.out.println(json);
        var datos = conversor.obtenerDatos(json, DatosSerie.class);
        System.out.println(datos);

        //BUSCA LOS DATOS DE TODAS LAS TEMPORADAS
        List<DatosTemporadas> temporadas = new ArrayList<>();
        for (int i = 1; i <= datos.totalDeTemporadas() ; i++) {
            json=consumoApi.obtenerDatos(URL_BASE + nombreSerie.replace(" ","+")+"&Season="+i+API_KEY);
            var datosTemporadas = conversor.obtenerDatos(json, DatosTemporadas.class);
            temporadas.add(datosTemporadas);
        }
        //temporadas.forEach(System.out::println);
        
        //MOSTRAR SOLO EL TITULO DE LOS EPISODIOS POR TEMPORADAS
//        for (int i = 0; i < datos.totalDeTemporadas() ; i++) {
//            List<DatosEpisodio> episodiosTemporada = temporadas.get(i).episodios();
//            for (int j = 0; j < episodiosTemporada.size(); j++) {
//                System.out.println(episodiosTemporada.get(j).titulo());
//            }
//        }

        temporadas.forEach(t -> t.episodios().forEach(e -> System.out.println(e.titulo())));

    }
}

screenmatch1Application.java

package com.valentina.screenmatch1;

import com.valentina.screenmatch1.model.DatosEpisodio;
import com.valentina.screenmatch1.model.DatosSerie;
import com.valentina.screenmatch1.model.DatosTemporadas;
import com.valentina.screenmatch1.principal.Principal;
import com.valentina.screenmatch1.service.ConsumoAPI;
import com.valentina.screenmatch1.service.ConvierteDatos;
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 Screenmatch1Application implements CommandLineRunner {

    public static void main(String[] args) {
        SpringApplication.run(Screenmatch1Application.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        Principal principal = new Principal();
        principal.muestraElMenu();
    }
}

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

1 respuesta

Hola Valentina, espero que estés bien

Considero su código muy bueno, en este momento no veo puntos de mejora. ¡Continúa con sus estudios y éxito en su carrera!

Gracias por compartir tu ejercício práctico con nosotros! Tu contribución es fundamental para el crecimiento de nuestra comunidad en Alura. Sigue comprometido y no dudes en regresar al foro en caso que tengas alguna duda o dificultad.

¡Abrazos y buenos estudios!

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