Resumen paso a paso para desplegar y ejecutar ambos microservicios, incluyendo la ejecución de una prueba unitaria, una prueba de integración y karate dsl para verificar los APIs.
Resumen rápido de los pasos:
- Descarga el proyecto de git
git clone <URL_REPOSITORIO> ; cd microservicio-cuentas; git checkout main - Asegúrate de tener Docker y Docker Compose instalados y en ejecución, tambien debes tener todos las dependencias mencionadas despues. Recomiendo abrir Docker Desktop para visualizar los contenedores mejor.
- Reinicia los contenedores y limpia la caché con
docker-compose down -vydocker system prune -af, solo si es necesario. - Inicia los contenedores desde la raíz del proyecto con
docker-compose up --build. - Una vez que los contenedores estén en funcionamiento, navega al directorio
microservicio-cuentasy ejecuta./mvnw testpara realizar las pruebas unitarias y de integración (Karate DSL).
Mas Detalles de todos los pasos y configuraciones:
- Java 17, Spring Boot 3.4.3
- Spring Data JPA (MySQL, H2)
- RabbitMQ
- Docker, Maven
- JUnit 5, Mockito, Karate DSL
- Postman (opcional)
- Docker, Docker Compose
- Maven
- Git (opcional)
- Postman (opcional)
- Modelos:
Cliente,Persona(JPA) - Repositorios:
ClienteRepository,PersonaRepository - Servicios:
ClienteService(Lógica de negocio) - Controladores:
ClienteController(REST endpoints)
- Modelos:
Cuenta,Movimiento(JPA) - Repositorios:
CuentaRepository,MovimientoRepository - Servicios:
CuentaService,MovimientoService(Lógica de negocio) - Controladores:
CuentaController,MovimientoController,ReporteController(REST endpoints) - Excepciones: Manejo de errores (ej.
SaldoNoDisponibleException) - Pruebas: Unitarias, Integración y Karate DSL
- Clonar:
git clone <URL_REPOSITORIO> ; cd microservicio-cuentas; git checkout main- Asegurarse que este en la rama main.
- Docker:
docker-compose down -v,docker system prune -afydocker-compose up --build - Ejecutar pruebas: Navega al directorio
microservicio-cuentasy ejecuta./mvnw testdesde este directorio. Esto ejecutará las pruebas unitarias y de integración y Karate DSL para probar los endpoints.
Endpoints (Clientes - http://localhost:8080)
- Cuentas:
GET /api/clientes: ListarPOST /api/clientes: CrearPUT /api/clientes/{identificacion}: ActualizarDELETE /api/clientes/{identificacion}: Eliminar
Endpoints (Cuentas - http://localhost:8081)
- Cuentas:
GET /api/cuentas: ListarPOST /api/cuentas: CrearPUT /api/cuentas/{numeroCuenta}: ActualizarDELETE /api/cuentas/{numeroCuenta}: Eliminar
- Movimientos:
GET /api/movimientos: ListarPOST /api/movimientos: Registrar (depósito/retiro)GET /api/movimientos/{id}: Obtener por IDPUT /api/movimientos/{id}: ActualizarDELETE /api/movimientos/{id}: Eliminar
- Reportes:
GET /api/reportes?fechaInicio=dd/MM/yyyy&fechaFin=dd/MM/yyyy&cliente=<identificacion>: Reporte por cliente y fechas
- Producción: MySQL (Docker Compose)
- Pruebas: H2 (memoria, perfil
test)
- Unitarias/Integración:
src/test/java/com/application/microservicio_cuentas/service(CuentaServiceUnitTest,MovimientoServiceIntegrationTest). Ejecutar:./mvnw testdesde el directoriomicroservicio-cuentas. - API (Karate DSL): Ejecutar:
./mvnw testdesde el directoriomicroservicio-cuentas. - Manuales (Postman - Opcional): Importar
postman.jsonen Postman, ejecutar todos los endpoints.
- Realice el programa en un ordenador con linux mint, no lo he probado en Windows o Mac.
