Esta API permite la gestión de monstruos de Halloween, almacenando atributos como poderes, debilidades, apariciones y nivel de peligro. Cuenta con autenticación basada en Spring Security Basic Authentication y está documentada con Swagger para facilitar su uso y pruebas.
- Registro y gestión de monstruos con atributos personalizados.
- Gestión de apariciones de monstruos en diferentes lugares.
- Autenticación con Spring Security Basic Authentication para proteger las rutas.
- Paginación en las listas de monstruos.
- Consultas personalizadas por atributos como nombre, tipo, habilidades especiales, etc.
- Estadísticas de los monstruos por poder, tipo y nivel de peligro.
- Swagger UI para la documentación interactiva de la API.
- POST
/monsters
: Registrar un nuevo monstruo. - GET
/monsters
: Listar monstruos con paginación. - GET
/monsters/{id}
: Obtener los detalles de un monstruo por su ID. - PUT
/monsters/{id}
: Actualizar los datos de un monstruo. - DELETE
/monsters/{id}
: Eliminar un monstruo.
- GET
/monsters/{monsterId}/appearances
: Obtener las apariciones de un monstruo. - GET
/monsters/{monsterId}/appearances/{id}
: Obtener una aparición específica de un monstruo. - POST
/monsters/{monsterId}/appearances
: Crear una nueva aparición para un monstruo. - PUT
/monsters/{monsterId}/appearances/{id}
: Actualizar una aparición de un monstruo. - DELETE
/monsters/{monsterId}/appearances/{id}
: Eliminar una aparición de un monstruo.
- GET
/monsters/type/{type}
: Filtrar monstruos por tipo. - GET
/monsters/danger/{level}
: Filtrar monstruos por nivel de peligro.
La API utiliza Spring Security Basic Authentication para asegurar las rutas. Los usuarios deben autenticarse proporcionando un username y password en el encabezado Authorization
de cada petición.
Usuarios:
- user:user
- admin:qwerty
La documentación de la API está disponible en el endpoint /swagger-ui.html
, donde puedes probar los diferentes endpoints y ver la estructura de los datos.
- Java 21
- Spring Boot
- Spring Security para la autenticación.
- Swagger para la documentación de la API.
- JPA para la persistencia de datos.
- PostgreSQL para la base de datos.
-
Construir la imagen de Docker para la aplicación.
mvn clean package docker-compose build
-
Ejecutar Docker Compose en segundo plano para crear y ejecutar los contenedores.
docker-compose up -d
-
Verificar que los contenedores están en ejecución.
docker-compose ps
-
Acceder a la documentación de la API en
http://localhost:8080/swagger-ui.html
.