(curso de Aula-Oracle-2025)
Este es un proyecto en Java que permite buscar información de películas acerca de The Star Wars utilizando la API de SWAPI (The Star Wars API).
El proyecto SwApi Project interactúa con la API pública de Star Wars proporcionada por swapi.py4e.com. La aplicación se enfoca en el apartado de films de la API, donde cada película tiene un ID asignado, basado en el orden de su lanzamiento. El flujo de la aplicación es el siguiente:
- El usuario introduce un número que corresponde al ID de la película.
- La aplicación hace una solicitud GET a la API para obtener la información de la película correspondiente.
- Muestra la información de la película en la consola.
- Guarda la información obtenida en un fichero JSON para su posterior uso.
El proyecto está desarrollado en Java 17 , utilizando una estructura orientada a objetos, y sigue buenas prácticas de diseño de software para facilitar su mantenimiento y extensión.
- Java 11 o superior
- Maven
- Conexión a Internet para acceder a la API.
- Lenguaje: Java 17 (OpenJDK 17.0.14)
- IDE recomendada: Visual Studio Code 1.99.3
- Paradigma: Programación Orientada a Objetos
- Gestión de código: Git y GitHub
Sigue estos pasos para clonar e instalar el proyecto:
1.Clona el repositorio a tu máquina local:
git clone https://github.com/jmikhaelz/swapi-proj.git
2.Entra en la carpeta del proyecto:
cd swapi-proj
3. Configurar el entorno:
El proyecto requiere Java 17 y VS Code 1.99.3. Si no tienes las versiones adecuadas, puedes instalarlas con:
sudo apt update
sudo apt install openjdk-17-jdk
Para verificar la instalación:
javac -version
java -version
4. Configura tu archivo config.properties con la dirección de la carpeta de las respuestas JSON:
Crea un archivo resources/config.properties y agrega la siguiente línea:
output.directory=info_json/
Este archivo de configuración define la ubicación donde se guardarán los archivos JSON con la información de las películas
Opcional : Si no estás utilizando un IDE y deseas ejecutar el proyecto desde la terminal.
Si deseas compilar el proyecto manualmente desde la terminal, puedes usar el siguiente comando:
javac -d bin -sourcepath src src/main/java/mx/aula/starwars/*.java
📌 Esto hace lo siguiente:
-d bin
: Guarda los ficheros.class
compilados en la carpetabin
.-sourcepath src
: Especifica la carpeta donde se encuentran las clases fuente.src/main/java/mx/aula/starwars/*.java
: Especifica las clases que se van a compilar.
Una vez que hayas compilado las clases, puedes ejecutar el programa usando el siguiente comando:
java -cp bin mx.aula.starwars.Main
📌 Esto significa:
-cp bin
: Indica que el programa debe usar los ficheros.class
que están en la carpetabin
.mx.aula.starwars.Main
: Especifica la clase principal con el métodomain()
que ejecuta el programa.
├── pom.xml # Archivo de configuración de Maven. Gestiona dependencias y configuración de construcción del proyecto.
├── README.md # Este archivo de documentación. Explica cómo usar el proyecto, configuraciones y ejemplos de uso.
├── src # Contiene el código fuente del proyecto.
│ ├── main # Código principal de la aplicación.
│ │ ├── java # Archivos fuente de Java.
│ │ │ └── mx
│ │ │ └── aula
│ │ │ └── starwars
│ │ │ ├── client # Contiene la clase SwapiClient para interactuar con la API de Star Wars.
│ │ │ │ └── SwapiClient.java # Realiza peticiones GET a la API de Star Wars.
│ │ │ ├── Main.java # Clase principal con el método `main()`, punto de entrada del programa.
│ │ │ ├── models # Modelos que representan las entidades de la aplicación.
│ │ │ │ └── Film.java # Representa la información de una película (título, director, etc.).
│ │ │ ├── service # Contiene la lógica de negocio relacionada con la API.
│ │ │ │ ├── SwapiServiceImpl.java # Implementación del servicio que obtiene información de la API.
│ │ │ │ └── SwapiService.java # Interfaz que define los métodos del servicio.
│ │ │ └── util # Utilidades auxiliares del proyecto.
│ │ │ ├── CleanTerm.java # Limpia la terminal según el sistema operativo.
│ │ │ ├── ConfigUtils.java # Maneja la carga y acceso a las configuraciones del proyecto.
│ │ │ └── FileManager.java # Maneja el guardado de datos en archivos JSON.
│ └── test # Contendrá las pruebas unitarias del proyecto (vacío por defecto).
├── target # Carpeta donde Maven genera los archivos compilados y artefactos.
└── config
└── config.properties # Archivo de configuración con detalles como el directorio de salida de archivos JSON.
Al ejecutar el proyecto desde la terminal, el flujo sería el siguiente:
================================================================================
Para Salir ingrese exit, Si no es el caso continue con
Introduce un número positivo : 1
Lanzamiento : 1977-05-25
Episodio : 1
Titulo : A New Hope
Director : George Lucas
Productor : Gary Kurtz, Rick McCallum
Entrada : It is a period of civil war. Rebel spaceships, striking from a hidden base, have won their first victory against the evil Galactic Empire...
================================================================================
Este ejemplo muestra el resultado al ingresar el ID 1, el cual corresponde a la primera película de Star Wars. La información es mostrada en la terminal y guardada en un fichero JSON con el nombre 1_a_new_hope.json. en la ubicacion que agregues en output.directory