Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
0
respuestas

Haga lo que hici

package com.aluracursos.screenmatch;

import com.aluracursos.screenmatch.principal.Principal;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication
public class ScreenmatchApplication implements CommandLineRunner {

    public static void main(String[] args) {

        SpringApplication.run(ScreenmatchApplication.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        Principal menu = new Principal();
        menu.muestraMenu();
    }
}
package com.aluracursos.screenmatch.principal;

import com.aluracursos.screenmatch.ConsumoAPI;
import com.aluracursos.screenmatch.model.DatosSeries;
import com.aluracursos.screenmatch.model.DatosTempo;
import com.aluracursos.screenmatch.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 buscApi = new ConsumoAPI();
    private final String urlFija = "https://www.omdbapi.com/?t=";
    private  final  String apiKey = "&apikey=4fc7c187";
    private ConvierteDatos convierte = new ConvierteDatos();


    public  void  muestraMenu(){
        System.out.println("Ingresa el nombre de la serie que estas buscando: ");
        var nombeSerie = teclado.nextLine();
        var json = buscApi.obtenerDatps(urlFija + nombeSerie.replace(" ", "+") + apiKey);
        System.out.println(json);
        var datos = convierte.obtenerDatos(json, DatosSeries.class);
        System.out.println(datos);

        List<DatosTempo> tempo = new ArrayList<>();
        for (int i = 1; i <= datos.totalTemps(); i++){
            json = buscApi.obtenerDatps(urlFija + nombeSerie.replace(" ", "+") + "&Season="+ i + apiKey);
            var datosTemporadas = convierte.obtenerDatos(json, DatosTempo.class);
            tempo.add(datosTemporadas);
        }

        //tempo.forEach(System.out::println);

        //estp trae solo el titulo de los episodios de la temporada
//        for (int i = 0; i < datos.totalTemps(); i++) {
//            List<DatosEpisodio> episodiosTempo = tempo.get(i).episodios();
//            for (int j = 0; j < episodiosTempo.size(); j++) {
//                System.out.println(episodiosTempo.get(j).titulo());
//            }
//        }
        tempo.forEach(t -> t.episodios().forEach(e -> System.out.println(e.titulo())));

    }
}
package com.aluracursos.screenmatch.model;

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

import java.util.List;

@JsonIgnoreProperties (ignoreUnknown = true)
public record DatosTempo(
        @JsonAlias("Season") Integer numero,
        @JsonAlias("Episodes") List <DatosEpisodio> episodios
) {
}
package com.aluracursos.screenmatch;

import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class ConsumoAPI {
    public  String obtenerDatps (String url){
        HttpClient cliente = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder().uri(URI.create(url)).build();
        HttpResponse<String> response = null;

        try{
            response = cliente.send(request, HttpResponse.BodyHandlers.ofString());
        } catch (IOException e){
            throw new RuntimeException(e);
        }catch (InterruptedException e){
            throw new RuntimeException(e);
        }
        String json = response.body();
        return json;
    }
}