Skip to content

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).

Notifications You must be signed in to change notification settings

jmikhaelz/swapi-proj

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

SwApi Project

(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).

📌 Descripción

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:

  1. El usuario introduce un número que corresponde al ID de la película.
  2. La aplicación hace una solicitud GET a la API para obtener la información de la película correspondiente.
  3. Muestra la información de la película en la consola.
  4. 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.

📌 Requisitos

  • Java 11 o superior
  • Maven
  • Conexión a Internet para acceder a la API.

🛠️ Entorno de Desarrollo

  • 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

🚀 Instalación y Ejecución

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


Cómo ejecutar el proyecto

Opcional : Si no estás utilizando un IDE y deseas ejecutar el proyecto desde la terminal.

1. Compilar el código fuente

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 carpeta bin.
  • -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.

2. Ejecutar el programa

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 carpeta bin.
  • mx.aula.starwars.Main: Especifica la clase principal con el método main() que ejecuta el programa.

📂 Estructura del Proyecto

├── 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.

Ejemplo de Uso

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

About

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).

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages