-
Notifications
You must be signed in to change notification settings - Fork 0
2. Guía de desarrollo
Arturo Lopez edited this page Apr 8, 2026
·
2 revisions
Prerrequisitos:
JDK 21, Gradle 8.x, IntelliJ IDEA.
Ejecución:
./gradlew bootRun- Swagger UI: /swagger-ui.html
- OpenAPI: /api-docs
- H2 Console: /h2-console (solo dev)
Convenciones:
- Organización de imports y KDoc.
- Naming:
PingController,PingService,PingResponse. SinPingUseCaseniPingMapper. - Inyección por constructor.
- Kotlin idioms:
- data classes para DTO y modelos de dominio.
- val sobre var.
- null-safety.
- extension functions.
Cómo agregar una funcionalidad (ejemplo Users):
Dentro de features/users/ crea estos archivos en orden:
- Modelo de dominio:
User.kt(data class puro, sin dependencias de Spring) - Entidad JPA:
UserEntity.ktcon anotaciones@Entity - Repositorio:
UserRepository.ktque extiendeJpaRepository - Service:
UserService.ktcon@Service, orquesta el repositorio - DTOs:
dto/UserResponse.ktconcompanion object fromDomain(),dto/CreateUserRequest.kt - Controller:
UserController.ktcon@RestController, delega al service - Tests: unit del service (sin Spring), integración del controller con
@WebMvcTest
Regla de oro: máximo 2 niveles de anidación dentro de una feature. users/dto/ es el límite.
Patrón de mapeo — companion object en el DTO:
data class UserResponse(
val id: Long,
val username: String,
val email: String,
val createdAt: LocalDateTime
) {
companion object {
fun fromDomain(user: User) = UserResponse(
id = requireNotNull(user.id),
username = user.username,
email = user.email,
createdAt = user.createdAt
)
}
}Excepciones de dominio:
Las excepciones específicas de una feature viven en features/<feature>/exceptions/. El manejo global está en common/exception/GlobalExceptionHandler.kt.
// features/users/exceptions/DuplicateEmailException.kt
class DuplicateEmailException(email: String) :
RuntimeException("El email '$email' ya está registrado")© 2025 Spring Boot Course - API REST real
Desarrollado por lgzarturo
Licencia Creative Commons Attribution 4.0 International (CC BY 4.0) | Términos de Uso | Política de Privacidad
Recursos adicionales:
¿Tienes sugerencias o quieres reportar un error?
- Inicio
- Calendario de liberaciones
- Arquitectura
- Guía de Desarrollo
- Roadmap del Curso
- Testing y Calidad
- Seguridad y Flujo
- Gamificación
- Usa TDD para asegurar calidad.
- Mantén las capas desacopladas.
- Documenta tus APIs con Swagger.
- Aplica seguridad con JWT y roles.