Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

🌐 API Gateway Service

Bienvenido al repositorio del Gateway. Este servicio actúa como el punto de entrada único (Single Entry Point) para nuestra arquitectura de microservicios, gestionando el tráfico, la seguridad y el enrutamiento inteligente hacia los servicios internos como facturasEditor.

Es el "portero" profesional que asegura que cada petición llegue a su destino correcto de forma segura, eficiente y centralizada.


🚀 Funcionalidades Clave

Este Gateway no es solo un proxy inverso, ofrece servicios críticos para la infraestructura:

  • 🚦 Enrutamiento Dinámico: Redirige las peticiones entrantes a los microservicios correspondientes basándose en la URL.
  • 🛡️ Capa de Seguridad Centralizada: Maneja la validación de tokens y headers de seguridad antes de que el tráfico toque los servicios internos.
  • ⚖️ Balanceo de Carga: (Opcional) Distribuye el tráfico entre múltiples instancias para asegurar alta disponibilidad.
  • 🔍 Monitoreo y Logs: Centraliza el registro de accesos para un seguimiento y depuración más sencillos de toda la red.
  • 🐳 Docker Ready: Completamente contenerizado para un despliegue rápido y consistente en cualquier entorno.

🛠️ Stack Tecnológico

Diseñado para ser ligero y escalable:

  • Core: Node.js & Express (Motor de enrutamiento de alto rendimiento).
  • Proxy: http-proxy-middleware / express-http-proxy.
  • Seguridad: Helmet & Rate Limiting.
  • Contenerización: Docker.
  • Configuración: Variables de entorno (.env).

📋 Requisitos Previos

Para ejecutar este proyecto localmente, asegúrate de tener:

  • Docker (Recomendado para producción/test).
  • Node.js v16+ (Para desarrollo local).
  • Acceso a los servicios destino (ej. facturasEditor) corriendo en tu red.

🔧 Guía de Instalación y Uso

Opción A: Despliegue con Docker (Recomendado)

  1. Clona el repositorio:

    git clone [https://github.com/DiLe0n/Gateway.git](https://github.com/DiLe0n/Gateway.git)
    cd Gateway
  2. Configura el entorno: Crea un archivo .env basado en el ejemplo:

    PORT=8080
    FACTURAS_SERVICE_URL=[http://host.docker.internal:3000](http://host.docker.internal:3000)
  3. Construye y corre el contenedor:

    docker build -t app-gateway .
    docker run -p 8080:8080 --env-file .env app-gateway

Opción B: Desarrollo Local

  1. Instala las dependencias:

    npm install
  2. Inicia el servidor en modo desarrollo:

    npm run dev

    El Gateway escuchará en http://localhost:8080 por defecto.


km 🛣️ Mapa de Rutas (Endpoints)

El Gateway expone las siguientes rutas públicas y privadas:

Ruta Externa Servicio Destino Descripción Autenticación
/api/facturas/** facturasEditor Gestión y protección de Excel ❌ Pública / ✅ Opcional
/api/users/** UserService (Futuro) Gestión de usuarios 🔒 Requerida
/health Gateway Verificación de estado del sistema ❌ Pública

📂 Estructura del Proyecto

Gateway/
├── src/
│   ├── routes/          # Definición de rutas y proxies
│   ├── middlewares/     # Lógica de auth, logs y rate-limit
│   ├── config/          # Configuración del entorno
│   └── app.js           # Punto de entrada de la aplicación
├── Dockerfile           # Instrucciones de construcción Docker
├── .env.example         # Plantilla de variables de entorno
└── package.json         # Dependencias del proyecto

🤝 Contribución

¡Tu ayuda es bienvenida para hacer este Gateway más robusto!

  1. Haz un Fork del repositorio.

  2. Crea tu rama (git checkout -b feature/MejoraSeguridad).

  3. Haz Commit de tus cambios.

  4. Haz Push a la rama.

  5. Abre un Pull Request.


📝 Licencia

Este proyecto está bajo la licencia ISC. Siéntete libre de usarlo y adaptarlo a tu infraestructura.

About

API Gateway para microservicios: enrutamiento dinámico, seguridad centralizada y rate limiting

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages