Patrón 1: API Gateway para centralizar el acceso - JuanHerreraP/Proyecto-MISO-Solventa-Grupo-11 GitHub Wiki
Solventa será consumida por el portal web, Android y sistemas externos de socios. Permitir que estos clientes accedan directamente a los servicios internos dificultaría la seguridad, el control del tráfico y el versionamiento de las APIs.
Se utiliza el patrón API Gateway como punto único de entrada.
El gateway se encarga de:
- Recibir todas las solicitudes HTTPS.
- Validar autenticación y permisos.
- Aplicar límites de consumo.
- Registrar solicitudes.
- Mantener versiones de los contratos.
- Enrutar cada solicitud al componente correspondiente.
- Las solicitudes web se dirigen al BFF Web.
- Las solicitudes Android se dirigen al BFF Móvil.
- Las solicitudes de seguros embebidos se dirigen a Distribución y Socios.
El API Gateway no contiene reglas de cotización, pagos o pólizas. Estas permanecen en los servicios de dominio.
El patrón fue seleccionado porque Solventa expone funcionalidades a clientes con necesidades y permisos diferentes. Centralizar el acceso evita replicar controles de seguridad y permite incorporar nuevos socios sin exponer la arquitectura interna.
Además, AWS API Gateway es un servicio administrado, por lo cual reduce el esfuerzo de implementación y operación para el equipo.
- EC07 – Seguridad: centraliza la autenticación y exige comunicaciones cifradas.
- EC08 – Control de acceso: permite validar roles y scopes antes de acceder al sistema.
- EC13 – Facilidad de integración: proporciona contratos versionados para nuevos socios.
- EC03 – Escalabilidad: permite controlar tráfico y aplicar límites de consumo durante picos.
- Punto único de acceso.
- Seguridad centralizada.
- APIs versionadas.
- Control del tráfico.
- Ocultamiento de los servicios internos.
- El gateway se convierte en un componente crítico.
- Una configuración incorrecta puede bloquear todos los canales.
- No debe acumular reglas del negocio.
flowchart TD
Web["Portal Web"]
Mobile["Aplicación Android"]
Partners["Sistemas de Socios"]
Gateway["API Gateway<br/>Autenticación, autorización,<br/>rate limiting, versionamiento y ruteo"]
BFFWeb["BFF Web"]
BFFMobile["BFF Móvil"]
PartnerService["Distribución y Socios"]
Web -->|HTTPS| Gateway
Mobile -->|HTTPS| Gateway
Partners -->|HTTPS / API versionada| Gateway
Gateway -->|Rutas web| BFFWeb
Gateway -->|Rutas móviles| BFFMobile
Gateway -->|Rutas de socios| PartnerService