Skip to content

LuisChacha/ms-tasks-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MS-Tasks-Java 🚀

Este microservicio es el componente de gestión de negocio de un ecosistema distribuido. Ha sido diseñado bajo los principios de Clean Architecture para demostrar la interoperabilidad entre diferentes stacks tecnológicos.

🎯 El Desafío Técnico

El objetivo principal de este proyecto es demostrar cómo un servicio en Java puede confiar en la identidad gestionada por un servicio externo en Python, compartiendo una capa de seguridad basada en JWT (JSON Web Tokens) y una infraestructura común en Docker.

🛠️ Stack Tecnológico

  • Java 21 (LTS)
  • Spring Boot 3.4
  • Spring Security (Protección de rutas y filtros JWT)
  • Spring Data JPA (Persistencia de datos)
  • PostgreSQL 15 (Corriendo en contenedor Docker)
  • Lombok (Reducción de código boilerplate)
  • Maven (Gestión de dependencias)

🏗️ Arquitectura de Integración

Este servicio no posee un módulo de registro de usuarios. En su lugar:

  1. Recibe una solicitud con un Authorization: Bearer <token>.
  2. Valida la firma del token usando una SECRET_KEY compartida con el microservicio ms-auth (Python).
  3. Extrae el user_id del token para filtrar y guardar las tareas de forma aislada por usuario.

Parte de un ecosistema políglota:

🔐 ms-auth (Python/FastAPI) : [email protected]:LuisChacha/fastapi-clean-architecture-auth.git

✅ ms-tasks-java (Este repositorio)


TESTS DESDE LA TERMINAL

No olvidar cambiar el token(obtenido en el login del ms-auth de python) en los siguientes comandos:

curl -X GET http://localhost:8080/api/v1/tasks/test -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzMyODU0MjEsInN1YiI6IjEifQ.SjfNvbl8eJ7YP53aaUpLtoKBL0NPNw-XhKAuknouHI4"

Output:

Microservicio de Tareas (Java) respondiendo correctamente 🚀

curl -X POST http://localhost:8080/api/v1/tasks/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzMyODk0OTIsInN1YiI6IjEifQ.HkKvaqCby6dmilo8BBb7IiXtMlPOCBO1E5Vam4om18E" \
-H "Content-Type: application/json" \
-d '{"title": "Tarea desde terminal3", "description": "Probando arquitectura políglota3"}'
curl -X GET http://localhost:8080/api/v1/tasks/ \
     -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzMyODk0OTIsInN1YiI6IjEifQ.HkKvaqCby6dmilo8BBb7IiXtMlPOCBO1E5Vam4om18E" \
     -H "Content-Type: application/json"

Microservicio de Tareas (Java Spring Boot) 🚀

Este microservicio forma parte de un ecosistema políglota, diseñado para gestionar tareas (To-Do) utilizando Clean Architecture.

🚀 Instalación Rápida

  1. Configurar el entorno: Asegúrate de tener corriendo el contenedor de PostgreSQL del proyecto ms-auth.

  2. Variables de Entorno: Configura tu application.properties con la misma SECRET_KEY utilizada en el microservicio de Python.

  3. Ejecución:

    ./mvnw spring-boot:run
    

🛠️ API Endpoints

GET /api/v1/tasks/test - Público: Verifica la salud del servicio.

GET /api/v1/tasks/ - Privado: Lista las tareas del usuario autenticado.

POST /api/v1/tasks/ - Privado: Crea una nueva tarea asociada al ID del usuario en el token.

About

Microservicio de gestión de tareas desarrollado con Spring Boot 3 y Java 21. Implementa Clean Architecture y validación de seguridad mediante JWT compartido con un ecosistema políglota (Python/FastAPI).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages