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

desafio API star war

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);
        ConsultaApi consulta = new ConsultaApi();
        System.out.println("Escribe el numero de la pelicula de Star war que buscas: ");
        try{
            var numeroPelicula = Integer.valueOf(lectura.nextLine());
            Pelicula pelicula =  consulta.buscaPelicula(numeroPelicula);
            System.out.println(pelicula);

            GeneradorDeArchivos generar = new GeneradorDeArchivos();
            generar.guardarJson(pelicula);
        }catch (NumberFormatException e){
            System.out.println("Numero no encontrado" + e.getMessage());
        } catch (RuntimeException | IOException e){
            System.out.println(e.getMessage());
            System.out.println("Finalizando la ejecucion...");
        }


        /**System.out.println("Título: " + pelicula.titulo());
        System.out.println("Episodio: " + pelicula.id_episodio());
        System.out.println("Director: " + pelicula.director());
        System.out.println("Fecha: " + pelicula.fechaLanzamiento());*/
    }
}

Clase que genera archivo

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

import java.io.FileWriter;
import java.io.IOException;

public class GeneradorDeArchivos {
    public void guardarJson(Pelicula pelicula) throws IOException {
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        FileWriter archivo = new FileWriter(pelicula.titulo() + ".json");
        archivo.write(gson.toJson(pelicula));
        archivo.close();
    }
}

clase para consultar la SWAPI

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 ConsultaApi {

    Pelicula buscaPelicula(int numeroDePelicula){
        URI direccion = URI.create("https://swapi.py4e.com/api/films/" + numeroDePelicula + "/");

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder().uri(direccion).build();

        try {
            HttpResponse<String> response = client.send(
                    request, HttpResponse.BodyHandlers.ofString()
            );
            return new Gson().fromJson(response.body(), Pelicula.class);
        } catch (Exception e) {
            throw new RuntimeException("No se encontro esa pelicula", e);
        }
    }
}

records

import com.google.gson.annotations.SerializedName;

public record Pelicula(
        @SerializedName("title")
        String titulo,
        @SerializedName("episode_id")
        int id_episodio,
        @SerializedName("opening_crawl")
        String opening,
        String director,
        @SerializedName("producer")
        String productor,
        @SerializedName("release_date")
        String fechaLanzamiento
)
{

}