API REST completa desarrollada con Java 17 y Spring Boot 3.3.0 para la gestión de usuarios del sistema IEEE IAS 2025.
- Java 17 con Spring Boot 3.3.0
- Maven como herramienta de construcción
- Base de datos H2 en modo archivo
- JPA/Hibernate para persistencia
- OpenAPI 3.1 con Swagger UI para documentación
- Arquitectura MVC estándar
- Validación de entrada con Bean Validation
- Manejo de excepciones centralizado
- Upload de archivos para avatares
src/main/java/com/ieee/ias/
├── IasApplication.java # Clase principal de Spring Boot
├── config/
│ └── OpenApiConfig.java # Configuración de OpenAPI
├── controller/
│ ├── AuthController.java # Controlador de autenticación
│ ├── IndexController.java # Controlador de redirección
│ └── UsuarioController.java # Controlador CRUD de usuarios
├── dto/
│ ├── CrearUsuarioRequest.java # DTO para crear usuarios
│ ├── LoginRequest.java # DTO para login
│ ├── LoginResponse.java # DTO de respuesta de login
│ └── UsuarioResponse.java # DTO de respuesta de usuario
├── entity/
│ └── Usuario.java # Entidad JPA Usuario
├── exception/
│ ├── CredencialesInvalidasException.java
│ ├── EmailYaExisteException.java
│ ├── ErrorProcesamientoArchivoException.java
│ ├── GlobalExceptionHandler.java
│ └── UsuarioNoEncontradoException.java
├── repository/
│ └── UsuarioRepository.java # Repositorio JPA
└── service/
└── UsuarioService.java # Servicio de lógica de negocio
- Java 17
- Maven 3.6+
cd /git/sodep/ias-ieee-2025-api
mvn spring-boot:run
- Swagger UI: http://localhost:8080/swagger-ui.html
- API Docs: http://localhost:8080/api-docs
- H2 Console: http://localhost:8080/h2-console
La aplicación utiliza H2 en modo archivo con la siguiente configuración:
- URL:
jdbc:h2:file:/tmp/db-ias2025
- Usuario:
sa
- Contraseña: (vacía)
La base de datos se crea automáticamente al iniciar la aplicación.
GET /api/usuarios
- Obtener todos los usuariosGET /api/usuarios/{id}
- Obtener usuario por IDPOST /api/usuarios
- Crear nuevo usuarioPUT /api/usuarios/{id}
- Actualizar usuarioDELETE /api/usuarios/{id}
- Eliminar usuarioPOST /api/usuarios/{id}/avatar
- Subir avatar
POST /api/auth/login
- Iniciar sesión
GET /
- Redirecciona a Swagger UI
curl -X POST http://localhost:8080/api/usuarios \
-H "Content-Type: application/json" \
-d '{
"nombre": "Juan Pérez",
"email": "juan.perez@ieee.org",
"password": "contraseña123"
}'
curl -X POST http://localhost:8080/api/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "juan.perez@ieee.org",
"password": "contraseña123"
}'
curl -X GET http://localhost:8080/api/usuarios
Las principales configuraciones se encuentran en application.properties
:
# Puerto del servidor
server.port=8080
# Base de datos H2
spring.datasource.url=jdbc:h2:file:/tmp/db-ias2025
spring.jpa.hibernate.ddl-auto=update
# Consola H2 habilitada
spring.h2.console.enabled=true
# Límites de subida de archivos
spring.servlet.multipart.max-file-size=10MB
La documentación completa de la API está disponible en Swagger UI una vez que la aplicación esté ejecutándose:
- Spring Boot 3.3.0
- Spring Data JPA
- Spring Web
- Spring Validation
- H2 Database 2.2.224
- SpringDoc OpenAPI 2.5.0
- Maven 3.11.0
IEEE IAS 2025 Team
- Email: soporte@ieee-ias2025.org
- Web: https://www.ieee-ias2025.org