Monorepo minimal listo para producción con 2 apps NestJS:
- Gateway HTTP (puerto 3000)
- Users microservicio TCP (puerto 4001)
npm install
npm run dev:all
# Listar (Gateway -> Users)
curl -s http://localhost:3000/api/users | jq
# Crear
curl -s -X POST http://localhost:3000/api/users \
-H "Content-Type: application/json" \
-d '{"name":"Ada"}' | jq
# Obtener 1
curl -s http://localhost:3000/api/users/1 | jq
-
El API Gateway expone una RESTFul API
-
El microservicio de usuario no tiene acceso directo desde internet.
-
El MS de usuario se comunica con al API GW a traves de TCP (no levanta un web-server)
-
Si el servicio de Users recibe mucha carga podemos escalarlo independientemente.
-
Este enfoque es mas seguro porque todo pasa por el GW
-
CORS habilitado en Gateway.
-
Validación con class-validator en Gateway y revalidación en Users.
-
Si
findOne
no existe, Gateway responde 404. -
En la seccion de scripts de package.json es donde está la mágia de la orquestación:
start:gateway
ystart:users
son comandos que se usarian en producción. Esto es mucho más rapido y eficiente que usar ts-node.