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

package com.entronomia.aplicaciones.proyectoCinco.principal;

import com.entronomia.aplicaciones.proyectoCinco.modelo.DatosEpisodio;
import com.entronomia.aplicaciones.proyectoCinco.modelo.DatosSerie;
import com.entronomia.aplicaciones.proyectoCinco.modelo.DatosTemporada;
import com.entronomia.aplicaciones.proyectoCinco.servicio.ConsumoAPI;
import com.entronomia.aplicaciones.proyectoCinco.servicio.ConversorDatos;

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

public class Principal {
    private Scanner entrada = new Scanner(System.in);
    private ConsumoAPI consumoAPI = new ConsumoAPI();
    private final String URL_START = "https://www.omdbapi.com/?t=";
    private final String URL_END = "&apikey=xxxxxxxx";
    private ConversorDatos conversorDatos = new ConversorDatos();
    public void mostrarMenu() {
        System.out.println("Escribe el nombre de la serie, cuyos datos deseas conocer");
        String nombreSerie = entrada.nextLine();
        var json = consumoAPI.obtenerDatos(URL_START + nombreSerie.replace(" ","+") + URL_END);
        var datosSerie = conversorDatos.obtenerDatos(json, DatosSerie.class);
        System.out.println(datosSerie);
        List<DatosTemporada> listaTemporadas = new ArrayList<>();
        for (int i = 1; i <= datosSerie.numeroDeTemporadas() ; i++) {
            json = consumoAPI.obtenerDatos(URL_START + nombreSerie.replace(" ","+") + "&Season=" + i + URL_END);
            var datosTemporada = conversorDatos.obtenerDatos(json, DatosTemporada.class);
            listaTemporadas.add(datosTemporada);
        }
/*        for(DatosTemporada temporada : listaTemporadas){
            System.out.println(temporada);
        }
        for (int i = 0; i < datosSerie.numeroDeTemporadas(); i++) {
            List<DatosEpisodio> episodiosEnLaTemporada = listaTemporadas.get(i).listaEpisodios();
            for (int j = 0; j < episodiosEnLaTemporada.size(); j++) {
                System.out.println(episodiosEnLaTemporada.get(j).titulo());
            }
        }
*/
        listaTemporadas.forEach(t -> t.listaEpisodios().forEach(e -> System.out.println(e.titulo())));
    }
}
package com.entronomia.aplicaciones.proyectoCinco.modelo;

import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

import java.util.List;

@JsonIgnoreProperties(ignoreUnknown = true)
public record DatosTemporada(
        @JsonAlias("Season") Integer numeroTemporada,
        @JsonAlias("Episodes") List<DatosEpisodio> listaEpisodios
) {
}
package com.entronomia.aplicaciones.proyectoCinco.modelo;

import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown = true)
public record DatosEpisodio(
        @JsonAlias("Title") String titulo,
        @JsonAlias("Year") Integer anno,
        @JsonAlias("Released") String fechaDeLanzamiento
)
{
}
package com.entronomia.aplicaciones.proyectoCinco.modelo;

import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown = true)
public record DatosSerie(
        @JsonAlias("Title") String titulo,
        @JsonAlias("totalSeasons") Integer numeroDeTemporadas)
{
}

package com.entronomia.aplicaciones.proyectoCinco;

import com.entronomia.aplicaciones.proyectoCinco.principal.Principal; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication public class ProyectoCincoApplication implements CommandLineRunner {

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

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

}

1 respuesta

¡Hola Roberto! ¿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!