Una aplicación de línea de comandos desarrollada en Spring Boot que consume la API de Gutendex para buscar y analizar información sobre libros gratuitos.
Esta aplicación permite consultar información de libros desde la API pública de Gutendex, ofreciendo funcionalidades como:
- Top 10 de libros más descargados
- Búsqueda de libros por título
- Estadísticas de descargas
- Análisis de datos de libros
- Java 17
- Spring Boot 4.0.0
- Maven (con Maven Wrapper)
- Jackson para procesamiento JSON
- HTTP Client para consumo de APIs
- Java 17 o superior
- Maven (opcional, ya que incluye Maven Wrapper)
- Clona el repositorio:
git clone [url-del-repositorio]
cd librosapp_pract_alura- Ejecuta la aplicación:
# En Linux/Mac
./mvnw spring-boot:run
# En Windows
mvnw.cmd spring-boot:runmvn spring-boot:runsrc/main/java/com/librosappaplura/librosapp_pract_alura/
├── LibrosappPractAluraApplication.java # Clase principal
├── Principal.java # Lógica de la aplicación
├── model/ # Modelos de datos
│ ├── Datos.java
│ ├── DatosAutor.java
│ └── DatosLibros.java
└── services/ # Servicios
├── ConsumeApi.java
├── ConvierteDatos.java
└── IConvierteDatos.java
Muestra una lista de los 10 libros con mayor número de descargas.
Permite buscar libros por título ingresando el nombre del libro deseado.
Proporciona estadísticas sobre las descargas de libros:
- Media de descargas
- Máximo de descargas
- Mínimo de descargas
- Cantidad de registros evaluados
La aplicación se conecta automáticamente a la API de Gutendex en:
https://gutendex.com/books/
Para ejecutar las pruebas del proyecto:
./mvnw test- Datos: Contiene la lista de libros obtenidos de la API
- DatosLibros: Información individual de cada libro (título, autor, idiomas, descargas)
- DatosAutor: Información del autor (nombre, fecha de nacimiento)
- Patrón de diseño: Uso de records para modelos inmutables
- Consumo de APIs: Implementación con HttpClient de Java
- Procesamiento JSON: Usando Jackson con alias personalizados
- Programación funcional: Uso de Streams y Optional
- Maven Wrapper: Permite ejecutar Maven sin instalación previa
- La aplicación se ejecuta en modo consola
- Los datos se obtienen en tiempo real desde Gutendex
- No requiere base de datos local
- Incluye manejo de errores básico
Las contribuciones son bienvenidas. Por favor, asegúrate de:
- Seguir las convenciones de código existentes
- Probar los cambios antes de enviar
- Actualizar la documentación si es necesario
Este proyecto está bajo la Licencia Apache 2.0. Ver el archivo LICENSE para más detalles.