Aplicación desarrollada en Java con Spring Boot que permite buscar libros a través de la API pública de Gutendex, almacenarlos en una base de datos PostgreSQL y realizar distintas consultas sobre ellos desde la consola. Este proyecto forma parte del Challenge propuesto en el programa ONE (Oracle Next Education) de Alura Latam y Oracle.
A través de un menú interactivo en consola, podrás:
1 - Buscar libro desde la web
2 - Buscar autor por nombre del libro
3 - Mostrar libros guardados en la base de datos
4 - Buscar libros por idioma
5 - Buscar autores vivos en un año determinado
6 - Revisar la cantidad de libros almacenados en determinado idioma
0 - Terminar la ejecución
- Java 17
- Spring Boot
- Spring Data JPA
- Consultas JPQL y SQL nativas
- Base de datos PostgreSQL
- Gutendex API (https://gutendex.com/)
- Maven como gestor de dependencias
Antes de ejecutar el proyecto, asegúrate de configurar las siguientes variables de entorno:
DB_HOST=localhost (Incluye el puerto si estás usando uno distinto al predeterminado 5432)
DB_NAME=nombre_base_de_datos
DB_USER=tu_usuario
DB_PASSWORD=tu_contraseñaEstas variables son utilizadas en application.properties para conectar con la base de datos PostgreSQL:
spring.application.name=literalura
spring.datasource.url=jdbc:postgresql://${DB_HOST}/${DB_NAME}
spring.datasource.username=${DB_USER}
spring.datasource.password=${DB_PASSWORD}
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialectmodelos/: Contiene las entidades JPA que se mapean a la base de datos y los records DTO utilizados para deserializar las respuestas de la API Gutendex.servicios/: Incluye las clases de servicio con la lógica de negocio. y las clases para el consumo de la API, donde se configura el cliente HTTP, se realiza la solicitud y se maneja la conversión de JSON a objetos Java usando genéricos y manejo de excepciones.repositorio/: Contiene la interfaz BibliotecaRepositorio, que extiende JpaRepository para facilitar operaciones CRUD y consultas personalizadas.principal/: Clase encargada de la interacción por consola, despliegue del menú y conexión con los servicios.
Gracias a Alura Latam y Oracle por la formación brindada, el Challenge propuesto y la oportunidad de participar en el programa ONE (Oracle Next Education).
Este proyecto fue desarrollado de forma independiente como parte del proceso de aprendizaje, siguiendo los lineamientos del reto, pero sin depender de soluciones guiadas o videos específicos.