Este proyecto forma parte del desafío propuesto por Alura LATAM. Es una aplicación de catálogo de literatura que permite gestionar libros y autores, utilizando Spring Boot, PostgreSQL, y JPA. La aplicación consume datos desde la API de Gutendex y permite realizar operaciones CRUD en una base de datos configurada por el usuario.
- Buscar un libro por título y registrarlo en la base de datos.
- Listar todos los libros registrados en la base de datos.
- Buscar un autor y registrarlo en la base de datos.
- Listar autores vivos en un año determinado.
- Listar libros registrados por idioma.
- Configuración dinámica de la base de datos mediante variables de entorno.
- Java 17 o superior.
- Maven para la gestión de dependencias.
- Una base de datos PostgreSQL u otra base de datos compatible.
- Conexión a internet para consumir datos desde la API de Gutendex.
Clona este repositorio en tu máquina local:
git clone https://github.com/tu-usuario/literalura.git
Crea un archivo application.properties
en la ruta src/main/resources
con el siguiente contenido, ajustando las variables de entorno a tu base de datos y sistema:
# Nombre de la aplicación
spring.application.name=literalura
# ---- CREDENCIALES (MODIFICAR SEGÚN LA BASE DE DATOS) ----
spring.datasource.url=${DB_HOST}
spring.datasource.username=${DB_USER}
spring.datasource.password=${DB_PASSWORD}
spring.datasource.driver-class-name=org.postgresql.Driver
hibernate.dialect=org.hibernate.dialect.HSQLDialect
# VERIFICA CAMBIOS EN BASE DE DATOS (UPDATE)
spring.jpa.hibernate.ddl-auto=update
# MUESTRA LOS LOGS DE BASE DE DATOS
spring.jpa.show-sql=true
spring.jpa.format-sql=true
DB_HOST
: URL de la base de datos. Ejemplo:jdbc:postgresql://localhost:5432/literalura
.DB_USER
: Usuario de la base de datos.DB_PASSWORD
: Contraseña de la base de datos.
Verifica que las dependencias en el archivo pom.xml
incluyan las necesarias para Spring Boot, JPA y PostgreSQL. Ejemplo:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
Ejecuta la aplicación desde tu IDE o mediante Maven:
mvn spring-boot:run
La aplicación estará disponible en http://localhost:8080
.
src/
├── main/
│ ├── java/
│ │ ├── com.alura.literalura/
│ │ │ ├── model/ # Entidades del proyecto
│ │ │ ├── repository/ # Repositorios JPA
│ │ │ ├── service/ # Lógica de negocio
│ │ │ ├── controller/ # Controladores REST
│ │ │ └── LiteraluraApplication.java # Clase principal
│ └── resources/
│ ├── application.properties # Configuración
│ └── static/ # Archivos estáticos (opcional)
└── test/ # Tests
La aplicación utiliza la API de Gutendex para consultar libros y autores.
Ejemplo de llamada:
GET https://gutendex.com/books/?search=titulo_del_libro
¡Gracias por participar en el desafío Alura LATAM y disfrutar de este proyecto de Catálogo de Literatura! 😊