Skip to content

Latest commit

 

History

History
113 lines (68 loc) · 3.45 KB

File metadata and controls

113 lines (68 loc) · 3.45 KB

Star Wars Films API – Java Challenge

Este proyecto es un desafío práctico desarrollado en Java cuyo objetivo es consumir una API pública, procesar la información recibida y almacenarla en formato JSON utilizando buenas prácticas de programación orientada a objetos.

La aplicación permite al usuario consultar información sobre las películas de Star Wars a través de la SWAPI (Star Wars API), seleccionar episodios específicos y guardar los resultados en un archivo JSON con formato legible.

Objetivo del proyecto

El objetivo principal de este desafío fue reforzar conceptos clave como:

  • Consumo de APIs REST usando HttpClient

  • Manejo de datos en formato JSON

  • Serialización y deserialización con Gson

  • Manejo de errores y validación de entradas del usuario

  • Separación de responsabilidades entre clases

  • Uso de colecciones para almacenar múltiples resultados

  • Más allá de “hacer que funcione”, el foco estuvo en entender qué hace cada parte del código y por qué.

¿Cómo funciona la aplicación?

Al iniciar la aplicación, el usuario puede ingresar un número del 1 al 6 para seleccionar una película de Star Wars o escribir salir para finalizar el programa.

Cada número corresponde a un recurso específico de la SWAPI, que devuelve la información completa de la película en formato JSON. La aplicación:

  • Valida la entrada del usuario.

  • Realiza una solicitud HTTP a la API.

  • Verifica que la respuesta sea un JSON válido.

  • Convierte la respuesta a un objeto Java.

  • Almacena las películas consultadas en una colección.

  • Genera un archivo .json con formato pretty print.

  • Esto permite consultar varias películas en una sola ejecución y guardarlas todas juntas.

Tecnologías y herramientas utilizadas

  • Java 17+

  • HttpClient (Java estándar)

-Gson para manejo de JSON

  • SWAPI (API pública de Star Wars)

  • Programación Orientada a Objetos (POO)

Estructura del proyecto

El proyecto está organizado en clases con responsabilidades claras:

  • Una clase principal que gestiona la interacción con el usuario.

  • Un servicio para consumir la API.

  • Un modelo que representa una película.

  • Un servicio encargado de la escritura del archivo JSON.

Esta separación facilita el mantenimiento del código y evita dependencias innecesarias entre componentes.

Manejo de errores

La aplicación contempla varios casos comunes de error, como:

  • Entradas no numéricas por parte del usuario.
  • Solicitudes inválidas a la API.
  • Respuestas que no contienen un JSON válido.
  • Errores de comunicación o escritura de archivos.

Estos casos se manejan sin detener abruptamente la ejecución del programa.

Aprendizajes clave

Durante el desarrollo de este desafío aprendí a:

Validar datos antes de procesarlos.

Comprender que el identificador del recurso en una API no siempre coincide con el número de episodio.

Integrar librerías externas de forma consciente.

Detectar errores analizando el contenido real de una respuesta HTTP.

Mejorar la calidad del código aplicando buenas prácticas, no solo “soluciones rápidas”.

Posibles mejoras futuras

Mapear correctamente los episodios a los IDs reales de la API.

Guardar múltiples archivos o agregar un historial.

Convertir la aplicación en una pequeña API propia.

Agregar pruebas unitarias.

Mejorar la experiencia de usuario en consola.

Autor

  • Anderson Collazos (MrCopixt0)

-Pd: Proyecto desarrollado como parte de un desafío práctico de aprendizaje en Java y consumo de APIs.