Tuesday, April 2, 2024

API Gateway with ASP.NET Core


Grandes preguntas:

  • ¿Repites mucho código en cada nuevo microservicio?
  • ¿Haces que tus frontends llamen múltiples endpoints para obtener lo que realmente necesitan?

Flujo de llamadas sin API Gateway

  • Problemas de latencia
  • Menos seguridad


Flujo de llamadas con API Gateway

  • El API Gateway sería un microservico más
  • Se mejora la latencia
  • Se incrementa la seguridad

API Gateway

  • Es un reverse proxy que obtendrá las peticiones del cliente y las redireccionará al microservicio/API que está configurado para conectarse para luego procesar la respuesta y devolverla al cliente. 
  • Entre medias, se le puede añadir autenticación, autorización o filtros para validar la petición antes de enviarla a los microservicios.
  • Otras características: rate limit, cache, header transformation, etc.

Algunas API Gateways en el mercado



Demo

  • Crear un proyecto Web API
  • La carpeta controllers no se necesita. La eliminamos.
  • Instalar el paquete de Ocelot
  • Configuración en Program.cs
  • Agregar archivo de configuración ocelot.json
    • Routes: Aquí configuramos las rutas a nuestros microservicios.
      • UpstreamPathTemplate: Este el endpoint el cual se va exponer a través del API Gateway
      • UpstreamHttpMethod: El método para invocar el endpoint
      • DownstreamHostAndPorts: Indicar el endpoint hacia donde tiene que ir
      • DownstreamPathTemplate: El path de hacia donde hay que ir
    • GlobalConfiguration: Aquí indicamos el punto de entrada a nuestra API Gateway (este dato se saca desde launchSettings.json (en iisExpress).

Resources:

API Gateway with ASP.NET Core

Grandes preguntas: ¿Repites mucho código en cada nuevo microservicio? ¿Haces que tus frontends llamen múltiples endpoints para obtener lo qu...