Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Proyecto final de desafío

package com.entronomia.aplicaciones.modelos;

public record PeliculaData(String title, String episode_id, String director, String producer, String release_date) {
}
package com.entronomia.aplicaciones.modelos;

public class Pelicula {
    private String nombre;
    private int id;
    private String director;
    private String productor;
    private String fechaDeLanzamiento;

    public Pelicula(PeliculaData peliculaData) {
        this.nombre = peliculaData.title();
        this.id = Integer.parseInt(peliculaData.episode_id());
        this.director = peliculaData.director();
        this.productor = peliculaData.producer();
        this.fechaDeLanzamiento = peliculaData.release_date();
    }

    public String getNombre() {
        return nombre;
    }

    public int getNumero() {
        return id;
    }

    public String getDirector() {
        return director;
    }

    public String getProductor() {
        return productor;
    }

    public String getFechaDeLanzamiento() {
        return fechaDeLanzamiento;
    }

    @Override
    public String toString() {
        return "(nombre: " + this.nombre + ", id: " + id + ", director: " + director +
                ", productor: " + productor + ", fecha de lanzamiento: " + fechaDeLanzamiento + ")";
    }
}
package com.entronomia.aplicaciones.principal;

import com.entronomia.aplicaciones.modelos.Pelicula;
import com.entronomia.aplicaciones.modelos.PeliculaData;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.io.FileWriter;
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class principalUno {
    public static void main(String[] args) throws IOException, InterruptedException {
        Scanner entrada = new Scanner(System.in);
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        List<Pelicula> listaDePeliculas = new ArrayList<>();
        while (true) {
            System.out.println("Ingrese el número de la película a buscar:");
            int numeroDeLaPelicula = entrada.nextInt();
            if (numeroDeLaPelicula == 0) {
                break;
            }
            String url = "https://swapi.py4e.com/api/films/" + numeroDeLaPelicula + "/";
            try {
                HttpClient cliente = HttpClient.newHttpClient();
                HttpRequest requerimiento = HttpRequest.newBuilder().uri(URI.create(url)).GET().build();
                HttpResponse<String> respuesta = cliente.send(requerimiento, HttpResponse.BodyHandlers.ofString());
                String json = respuesta.body();
                System.out.println(json);
                PeliculaData peliculaData = gson.fromJson(json, PeliculaData.class);
                System.out.println(peliculaData);
                Pelicula pelicula = new Pelicula(peliculaData);
                System.out.println(pelicula);
                listaDePeliculas.add(pelicula);
            } catch (NumberFormatException e) {
                System.out.println("Error de formato numérico");
            } catch (IllegalArgumentException e) {
                System.out.println("Error en la dirección uri");
            } finally {
                System.out.println("Fin del proceso");
            }
        }
        System.out.println(listaDePeliculas);
        FileWriter escritura = new FileWriter("peliculas.json");
        escritura.write(gson.toJson(listaDePeliculas));
        escritura.close();
    }
}
1 respuesta

Hola Roberto, espero que estés bien

Considero su código muy bueno, en este momento no veo puntos de mejora. ¡Continúa con sus estudios y éxito en su carrera!

Gracias por compartir tu ejercício práctico con nosotros! Tu contribución es fundamental para el crecimiento de nuestra comunidad en Alura. Sigue comprometido y no dudes en regresar al foro en caso que tengas alguna duda o dificultad.

¡Abrazos y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!