API REST desarrollada con Spring Boot para la gestión de un sistema de comercio electrónico.
Permite autenticación mediante JWT, gestión de productos y categorías, carrito persistente, generación de órdenes, filtros, paginación y control de acceso por roles.
- Registro de usuarios
- Inicio de sesión con JWT
- Refresh Tokens
- Roles USER y ADMIN
- Gestión de productos
- Gestión de categorías
- Carrito persistente
- Generación de órdenes
- Historial de órdenes
- Soft Delete
- Paginación
- Filtros de búsqueda
- Validaciones de negocio
- Manejo global de excepciones
- Testing unitario
- Documentación con Swagger/OpenAPI
- Java 21
- Spring Boot 4.0.6
- Spring Security
- Spring Data JPA
- MySQL
- JWT (JJWT)
- Hibernate
- Maven
- Lombok
- Swagger/OpenAPI
- JUnit 5
- Mockito
El proyecto sigue una arquitectura en capas:
Controller ↓ Service ↓ Repository ↓ Base de Datos
Además utiliza:
- DTOs para entrada y salida de datos
- Mappers para conversiones
- Spring Security para autenticación y autorización
- JWT para sesiones sin estado
- Exception Handlers para errores centralizados
La autenticación se realiza mediante JWT.
Características implementadas:
- Access Token
- Refresh Token
- Roles USER y ADMIN
- Endpoints protegidos con Spring Security
- Autorización basada en roles
- Logout mediante invalidación de Refresh Token
| Método | Endpoint |
|---|---|
POST |
/auth/registro |
POST |
/auth/login |
POST |
/auth/refresh-token |
POST |
/auth/logout |
| Método | Endpoint |
|---|---|
POST |
/productos |
GET |
/productos |
PUT |
/productos/{id} |
DELETE |
/productos/{id} |
| Método | Endpoint |
|---|---|
POST |
/categorias |
GET |
/categorias |
PUT |
/categorias/{id} |
DELETE |
/categorias/{id} |
| Método | Endpoint |
|---|---|
POST |
/carrito |
DELETE |
/carrito/{productoId} |
GET |
/carrito |
| Método | Endpoint |
|---|---|
POST |
/ordenes/checkout |
GET |
/ordenes |
Se implementaron pruebas unitarias utilizando:
- JUnit 5
- Mockito
- MockMvc
Cobertura realizada sobre:
- Controllers
- Services
Los tests validan:
- Casos exitosos
- Casos de error
- Validaciones
- Excepciones de negocio
La documentación interactiva está disponible mediante Swagger/OpenAPI.
Una vez iniciada la aplicación:
Desde Swagger es posible:
- Consultar todos los endpoints
- Ver DTOs de entrada y salida
- Autenticarse mediante JWT
- Ejecutar pruebas directamente desde la interfaz
✅ Registro de usuarios
✅ Login con JWT
✅ Refresh Token
✅ Roles USER y ADMIN
✅ Gestión de productos
✅ Gestión de categorías
✅ Carrito persistente
✅ Generación de órdenes
✅ Historial de órdenes
✅ Soft Delete
✅ Paginación
✅ Filtros
✅ Validaciones
✅ Manejo global de excepciones
✅ Testing
✅ Swagger/OpenAPI