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
MENSAJE AL ESCRIBIR UNA CADENA DE TEXTOS (STRING)
ARCHIVO GUARDADO LAS DISTINTAS CONSULTAS