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

Proyecto final

CLASE PRINCIPAL

    import java.io.IOException;
    import java.util.Scanner;

    public class PRINCIPAL {
        public static void main(String[] args) {

            Scanner lectura = new Scanner(System.in);
            CONSULTA_PELICULA consulta = new CONSULTA_PELICULA();
            System.out.println( "ESCRIBE EL NUMERO DE LA PELICULA A CONSULTAR" );

            try {
                //var numeroDePelicula = lectura.nextLine(); // solo numeros
                var numeroDePelicula = Integer.valueOf( lectura.nextLine() ); // conversion de tipo de datos int a String(cadena de caracteres)

                record_PELICULA pelicula = consulta.buscaPelicula(numeroDePelicula);
                System.out.println(pelicula);
                //se manda a llamar el generador de archivos
                GENERADOR_DE_ARCHIVO generador_de_archivo = new GENERADOR_DE_ARCHIVO();
                generador_de_archivo.guardarArchivoJson(pelicula);


                //POR SI EL USUARIO DIGITA UNA CADENA DE TEXTO y NO un Numero
            } catch (NumberFormatException e) { // e = excepcion
                System.out.println("OCURRIO UN ERROR, numero no encontrado");
                System.out.println(e.getMessage());

            } catch (RuntimeException | IOException e) {
                System.out.println( e.getMessage() );
                System.out.println( "FINALIZACION DE LA APLICACION" );
            }
        }
    }
    

CLASE HIJA CONSUKTAR PELICULA

    //clase encargada de buscar las peliculas (1 al &)
    import com.google.gson.Gson;
    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 CONSULTA_PELICULA {

       public record_PELICULA buscaPelicula (int numeroDePelicula){ //metodo

            URI direccion  = URI.create("https://swapi.py4e.com/api/films/"+numeroDePelicula+"/");
                                            // direccion antigua  http://swapi.dev/api/films/
                                            // direccion nueva https://swapi.py4e.com/api/films/
            HttpClient client = HttpClient.newHttpClient(  );
            HttpRequest request = HttpRequest.newBuilder(  )//patron de diseño
                    .uri( direccion )
                    .build();

            // respuesta del servidor hacia el cliente
            try {
                HttpResponse <String>  response = client.send(request, HttpResponse.BodyHandlers.ofString());
                return new Gson().fromJson(response.body(), record_PELICULA.class);
            } catch (Exception e) {
                throw new RuntimeException("NO SE ENCOTRO LA PELICULA");
            }
        }
    }

CLASE HIJA GENERADO DE ARCHIVOS

    //CLASE  PARA PODER GUARDA el json de la pelicula
    import com.google.gson.Gson;
    import com.google.gson.GsonBuilder;
    import java.io.FileWriter;
    import java.io.FilterWriter;
    import java.io.IOException;
    import java.util.logging.Filter;

    public class GENERADOR_DE_ARCHIVO {

        public void guardarArchivoJson (record_PELICULA pelicula) throws IOException {
            Gson gson = new GsonBuilder().setPrettyPrinting().create(); // GsonBuilder() es el encargado de transformar el objeto en formato json

            // encargado de guardar el archivo generado
            FileWriter textoEscritura =  new FileWriter(   pelicula.title() + ".json"  );
            textoEscritura .write(gson.toJson(pelicula));
            textoEscritura.close();

            }
    }

CLASE HIJA record PELICULA

    public record record_PELICULA(String title,
                                  int episode_id,
                                  String opening_crawl,
                                  String director,
                                  String producer,
                                  String release_date) {
    }
    

AL DIGITAR EL NUMERO CORRESPONDIETE A CADA PELICULA Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad MENSAJE AL ESCRIBIR UNA CADENA DE TEXTOS (STRING) Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad ARCHIVO GUARDADO LAS DISTINTAS CONSULTAS Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad