Patrón 1: API Gateway para centralizar el acceso - JuanHerreraP/Proyecto-MISO-Solventa-Grupo-11 GitHub Wiki

Problema

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.

Solución

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.

Aplicación en Solventa

  • 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.

Razonamiento

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.

Relación con los ASR

  • 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.

Ventajas:

  • Punto único de acceso.
  • Seguridad centralizada.
  • APIs versionadas.
  • Control del tráfico.
  • Ocultamiento de los servicios internos.

Limitaciones:

  • El gateway se convierte en un componente crítico.
  • Una configuración incorrecta puede bloquear todos los canales.
  • No debe acumular reglas del negocio.

Diagrama

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
Loading
⚠️ **GitHub.com Fallback** ⚠️