Skip to main content

¿Qué es un API Gateway?

Una API Gateway es un gestor que acepta todas las llamadas API y luego actúa como un proxy inverso, recuperando recursos de las aplicaciones de back-end en nombre de la aplicación del cliente; maneja tareas relacionadas con los servicios de API, como autenticación de usuarios, limitación de velocidad y monitoreo.

Para que comprendas mejor lo que es una API Gateway usemos una analogía:

Piensa en una API Gateway como una puerta. Detrás de ella están los servicios back-end a los que las aplicaciones del cliente quieren acceder. El cliente, también conocido como el consumidor de API, realiza su solicitud en la puerta, tal vez verifica su identidad y luego espera a que se entreguen los datos solicitados. Mientras tanto, detrás de dicha puerta, donde el cliente no puede ver, su solicitud se enruta a la parte relevante del sistema API y la respuesta se reenvía al cliente.

Ahora, pasemos a un lado más técnico para que sepas cómo funciona una API Gateway.

¿Cómo funciona una API Gateway?

Una API Gateway desacopla la interfaz del cliente de la implementación de back-end de un entorno de aplicaciones y productos de sistemas (SAP, por sus siglas en inglés) o una arquitectura de microservicios. Con esta interfaz de API, con la que es más fácil trabajar que implementar back-end subyacente, se encuentra entre el consumidor y el proveedor de API.

Por lo tanto, cuando un consumidor de API envía una solicitud a API Gateway pasará por tres fases:

  • En la primera, su solicitud se autoriza, valida y transforma para un punto final en el back-end. A esto se le conoce como el «Flujo de solicitud». Aquí, el proveedor de la API puede requerir un encabezado HTTP, una cadena de consulta o una clave de API en particular, para identificar a una persona que llama y rechazar cualquier solicitud no autorizada o aplicar un límite de cuota o limitación.
  • La segunda fase consiste en enrutar al servicio (o servicios) relevante. Por ejemplo, en Amazon API Gateway, una solicitud puede enrutarse a una función en AWS Lambda u otro recurso de AWS. Aquí es donde ocurre la acción: tal vez se guarde un registro en la base de datos o se transmitan algunos tweets, según cuál sea la solicitud.
  • En la tercera fase la solicitud se transformará una vez más para enviarla de vuelta al cliente. Si bien una API Gateway a menudo enrutará una solicitud a múltiples servicios, agregará los resultados en una sola respuesta. Esta puede incluir un código de estado HTTP para confirmar que la solicitud fue exitosa. A esto se le conoce como «Flujo de respuesta».

Ahora que tienes una mayor comprensión de cómo funciona una API Gateway, te hablaremos un poco sobre sus ventajas.

api gateway esquema

No interactúa como puerta de enlace únicamente, si no que te permite agregar funcionalidades adicionales como:

  • Seguridad:
    • Autenticación y autorización (por ejemplo, OAuth, grant types, scopes o similares).
    • Protección contra amenazas (por ejemplo, DoS, inyección de código, etc).
  • Análisis y supervisión (quién utiliza sus API’s, cuándo y cómo).
  • Monitorización de uso (KPI’s y métricas).
  • Alineada a tu modelo de negocio: partner-only “cerrado”, public “abierto”, internal “interno/local” o monetización del consumo de las API’s publicadas (Seguro que recuerdas la última jugada de Google Maps con su política de precios).
  • Administración del ciclo de vida y versionado de la API.
  • Traducción de protocolos, permitiendo escoger el idioma más indicado según tu necesidad entre el API Gateway y los microservicios y/o API’s, como SOAP, API REST, etc.
  • Orquestación de API propias o de terceros, como Paypal, Google Maps, ….

¿Cómo puede ayudarte un API Gateway?

Si dispones de aplicaciones basadas en microservicios deberías consumirlos mediante un API Gateway, para que interactúe como un único punto de entrada en el conjunto de microservicios. Veamos cuatro escenarios diferentes para valorar de qué opciones dispones a la hora de utilizar tus aplicaciones con un API Gateway:

1. Desde una API existente:

Si tienes una API con muchas funcionalidades y ahora necesitas, por ejemplo, desarrollar una aplicación móvil con solo algunas de estas funcionalidades del API, lo más indicado sería no publicar el API principal. El mejor recurso es hacerlo mediante el API Gateway, configurando en el sistema únicamente aquellos end-points que necesite la aplicación móvil. Como resultado habrás minimizado los acceso a la API y podrás controlar la autenticación y autorización, unificar protocolos, analizar y supervisar el consumo del API.

2. Desde un servicio SOAP existente:

Por ejemplo, es posible que debas exponer datos de tus sistemas como Facturación o CRM. Estos sistemas generalmente exponen las interfaces como SOAP / RPC clásicas, que los clientes móviles no son adecuados para consumir. Si dispones de un servicio SOAP y ahora necesitas conectar mediante una API REST, un API Gateway se encargará de traducir el idioma de estos dos protocolos.

3. Diseña una nueva API REST:

Algunas herramientas API Manager como WSO2, proporcionan un completo entorno de desarrollo SOA que te permite diseñar todo un proyecto API REST. Simplificando la creación de funcionalidades con un entorno GUI que te facilitara la creación de la API final.

4. Diseña una nueva API como Websocket:

Lo mismo que el punto anterior, proporcionan un completo entorno de desarrollo que te permite definir un nuevo proyecto API, pero en este caso, mediante un servicio Websocket.

Cada escenario es muy diferente, seguro que en algún momento te has encontrado con más de uno de estos escenarios, una API Gateway es la herramienta perfecta para poner solución a estos problemas.

¿Por qué usar una API Gateway?

Hay varios beneficios al usar una API Gateway. Si bien cada una puede diferir según su implementación, normalmente todas tienen una funcionalidad común, la cual te compartimos a continuación.

La mayoría de las API Gateway manejan la autenticación de usuarios y la limitación de velocidad, lo que puede ayudar a evitar que se abuse accidental o intencionalmente de tu API. De igual forma, suelen ofrecer análisis y monitoreo para realizar un seguimiento de cómo las personas usan tus API y servicios.

Con una API Gateway no tienes que preocuparte por cómo agregar o retirar servicios API, ni de cómo esto puede afectar la forma en que las aplicaciones del cliente pueden solicitar acceso a ellos. Las aplicaciones del cliente aún pueden solicitar acceso a cualquiera de tus servicios en el mismo punto de entrada, sin necesidad de realizar un seguimiento de múltiples puntos finales de API.

Una API Gateway también es ideal si tienes una aplicación basada en microservicios y a continuación te explicamos por qué.

Microservicios de API Gateway

En el pasado, las empresas tenían una aplicación monolítica que hacía todo. Si las aplicaciones del cliente quisieran recuperar algunos datos o servicios de esta aplicación harían una llamada a la API. Luego, un balanceador de carga enrutaría la solicitud a uno de los puntos finales, replicados e idénticos de la aplicación. Dicha aplicación consultará varias tablas de la base de datos para completar la solicitud y devolver una respuesta al cliente.

Hoy en día, muchas empresas han adoptado una arquitectura de microservicios, en la que múltiples servicios son responsables de diferentes tareas. Con este tipo de arquitectura, las aplicaciones del cliente pueden acceder a estos servicios de dos formas.

La primera forma es la comunicación directa entre el cliente y el microservicio. Con este enfoque, las aplicaciones de cliente pueden realizar solicitudes directamente a microservicios individuales mediante el envío de varias llamadas a los puntos finales de microservicios correctos.

microservicios

Sin embargo, hay algunos problemas con este enfoque. En primer lugar, cuantas más solicitudes tenga que enviar un cliente al back-end, más viajes de ida y vuelta tendrá que completar la aplicación entre el cliente y el servidor. Esto puede resultar en tiempos de espera más prolongados para el cliente. En segundo lugar, dado que cada microservicio debe ser accesible a través de terminales públicas, existe un mayor riesgo de seguridad. Por lo tanto, es fundamental implementar medidas de seguridad como la autorización para cada microservicio individual, pero requerirá una cantidad significativa de tiempo y esfuerzo.

Finalmente, la actualización de la aplicación plantea serios desafíos con este tipo de modelo de comunicación. Esto se debe a que agregar o retirar microservicios no solo requerirá un gran esfuerzo de desarrollo, sino también afectará las aplicaciones de los clientes que se han acoplado con los puntos finales internos existentes.

Si bien la comunicación directa entre el cliente y el microservicio podría funcionar para aplicaciones pequeñas, basadas en microservicios, un enfoque indirecto es ideal para aplicaciones más grandes y complejas. Ahí es donde entra en juego una API Gateway.

Una API Gateway proporciona un único punto de entrada para las aplicaciones cliente. Un cliente envía su solicitud y la Gateway puede dividirla en varias solicitudes, enrutarlas a diferentes servicios de back-end y devolver la respuesta al cliente en un solo viaje de ida y vuelta. Por lo tanto, una API Gateway reduce la cantidad de solicitudes entre el cliente y el servidor, mejorando la velocidad y la experiencia del usuario.

Leave a Reply

Close Menu

Vamos a transformarnos digitalmente!

Nuestro equipo está listo para
apoyarte en este nuevo desafío.

Acerca de AI3LAB

Santandereanos
Emprendedores
Innovadores
Muy colombianos

T: +57 60 (7)6199238
E: hola@ai3lab.com