Arquitectura Hexagonal y Consumo Externe (Gutendex API)
Diseño e implementación de LiterAlura Core, una API REST construida sobre Java 21 y Spring Boot 3. El proyecto adopta el patrón de Arquitectura Hexagonal (Ports and Adapters), aislando las reglas de dominio central del framework, los detalles de infraestructura (PostgreSQL) y las integraciones con servicios de terceros.
LiterAlura Core - API de Gestión de Libros y Autores-imagen1
Ingesta de Datos Externa & Cliente HTTP Nativo
La plataforma se integra con la API pública de Gutendex (Proyecto Gutenberg) para consultar catálogo literario en tiempo real. En lugar de depender de librerías de terceros, se utilizó el cliente HTTP nativo de Java (java.net.http.HttpClient) junto con Jackson para la deserialización ágil de JSONs complejos. Los puertos de entrada (Input Ports) exponen los casos de uso para buscar libros por título, mientras que los adaptadores de salida (Output Adapters) gestionan la comunicación hacia la API externa de forma transparente para la capa de negocio.
Diseño Hexagonal: Separación estricta entre Dominio, Casos de Uso y Adaptadores (Web, Persistence, External Clients).
Java 21 & Spring Boot 3: Aprovechamiento de características modernas del lenguaje para un procesamiento eficiente de peticiones HTTP.
Integración con Gutendex: Cliente HTTP asíncrono/sincrónico nativo para la ingesta limpia de información bibliográfica.
Persistencia Relacional y Control de Duplicado
Capa de datos modelada sobre PostgreSQL mediante Spring Data JPA, enfocada en la integridad referencial y la optimización de búsquedas históricas.
LiterAlura Core - API de Gestión de Libros y Autores-imagen1
Control de Duplicados & Consultas Personalizadas
Cada vez que un usuario realiza una búsqueda externa, el sistema valida la existencia previa del libro y su autor en la base de datos local antes de procesar el guardado automático, evitando redundancia de información. Además, se diseñaron consultas personalizadas en JPQL para responder a criterios específicos de filtrado:
Filtrado por Idioma: Consulta de obras almacenadas filtrando por códigos ISO de lenguaje (es, en, fr, pt).
Búsqueda Histórica de Autores: Algoritmo JPQL que calcula qué autores registrados se encontraban con vida en un año determinado según sus fechas de nacimiento y fallecimiento.
Conexión Cliente-Servidor y Configuración CORS
Integración de la API backend con una interfaz web ligera desarrollada en Preact con JavaScript, desplegada en Netlify.
LiterAlura Core - API de Gestión de Libros y Autores-imagen1
Interfaz Ligera & Políticas de Perímetro
Para mantener un consumo de memoria mínimo en el navegador, se eligió Preact como librería de UI. El backend configura políticas CORS globales que permiten la comunicación segura de los endpoints desde el dominio del cliente en Netlify.
Cliente Web en Preact: Interfaz ultraligera en JavaScript para interactuar con los endpoints de búsqueda y filtrado.
Soporte CORS Configurado: Habilitación de orígenes cruzados para la comunicación fluida con la aplicación en Netlify.
Contrato REST Consistente: Respuestas JSON estandarizadas para renderizar catálogos y resultados de búsqueda sin errores.
Apariencia
