Header Ads Widget

Ticker

6/recent/ticker-posts

¿Qué es una puerta de enlace API?

 


Si no es un practicante de API, es posible que no se sienta muy cómodo con la idea de una puerta de enlace API. Siguiendo con nuestro artículo reciente ¿Cuál es la diferencia entre API y microservicios? , queríamos desmitificar otro tema de API desalentador para la audiencia menos orientada a la tecnología. Entonces, ¿qué es una puerta de enlace API ?

Hay muchas formas de describir una puerta de enlace API . Ya sea que desee llamarlo proxy inverso, un único punto de entrada o una interfaz, la idea es la misma: una puerta de enlace API es una capa que se encuentra entre sus clientes y servicios. En lugar de que los clientes envíen solicitudes directamente a servicios individuales, las envían a una puerta de enlace API. Luego, la puerta de enlace API pasa las solicitudes al servicio apropiado.

¿Por qué utilizar una puerta de enlace API? Microservicios.

Las puertas de enlace API se están volviendo cada vez más populares con la tendencia hacia el uso de arquitecturas de microservicios . En una arquitectura de microservicios, una aplicación se divide entre un puñado de servicios poco acoplados (denominados microservicios), cada uno de los cuales tiene su funcionalidad distinta. Si bien los microservicios ofrecen una gran cantidad de beneficios , en particular, facilitan el desarrollo, la implementación y el mantenimiento de distintas partes de una aplicación, dificultan que los clientes accedan a la información que necesitan de manera rápida y segura.

Una puerta de enlace API puede resolver algunos de estos problemas actuando como una interfaz central para los clientes que utilizan estos microservicios. En lugar de tener que acceder a docenas de servicios individuales, un cliente puede enviar una sola solicitud a la puerta de enlace API, que a su vez reclutará los microservicios. Esta función principal de la puerta de enlace API se conoce como enrutamiento , pero hay muchas más razones para usar una puerta de enlace API ...

¿Qué más hace una puerta de enlace API?

Además de solo enrutar las solicitudes de los clientes, las puertas de enlace API pueden ofrecer una gran cantidad de beneficios en términos de administración de API . Como interfaz central que conecta a los clientes con los servicios, una puerta de enlace API puede manejar tareas cruciales de seguridad y administración, como autenticación, validación de entrada, recopilación de métricas y transformación de respuesta:

  • Autenticación . Se puede utilizar una puerta de enlace de API para autenticar las llamadas de API. De esta manera, incluso si el cliente necesita acceder a datos de varios servicios, solo necesita autenticarse una vez en la puerta de enlace. Esto reduce la latencia y asegura que los procesos de autenticación sean consistentes en toda la aplicación.
  • Validación de entrada . Las puertas de enlace API también se pueden utilizar para realizar una lógica simple. En el caso de la validación de entrada, esto significa asegurarse de que la solicitud del cliente contenga toda la información necesaria para completar la solicitud, en el formato correcto, antes de que llegue al servicio que finalmente recuperará los datos solicitados.
  • Colección de métricas . Dado que todas las solicitudes se canalizan a través de la puerta de enlace API, es el lugar ideal para recopilar análisis. Una puerta de enlace API puede, por ejemplo, medir cuántas solicitudes realiza un usuario o cuántas solicitudes se transmiten a un microservicio en particular. Esto también permite que las puertas de enlace API se utilicen para limitar la velocidad: si un usuario envía demasiadas solicitudes, la puerta de enlace puede rechazarlas en lugar de pasarlas a uno de los servicios.
  • Transformación de respuesta . A menudo, diferentes dispositivos y usuarios necesitan acceder a información diferente. Por ejemplo, los dispositivos móviles pueden necesitar menos datos que los dispositivos de escritorio, mientras que los clientes internos pueden necesitar más información que los clientes externos. Se puede utilizar una puerta de enlace API para dar cuenta de esto, presentando efectivamente una API única para cada tipo de cliente. Esto es algo que Netflix hace con su puerta de enlace API.
Relacionado: ¿Debería hacer mi propia puerta de enlace API?

Beneficios de las puertas de enlace API

Juntas, estas características hacen que la puerta de enlace API sea una forma muy sensata de empaquetar sus microservicios. Algunos de los beneficios exactos que obtiene de esto son:

  • Código más simple (para sus servicios y para sus clientes)
  • Latencias acumulativas más bajas
  • Seguridad mejorada, ya que las solicitudes se gestionan con un enfoque único y coherente
  • Carga reducida en microservicios valiosos
  • Métricas completas

Para comprender estos beneficios, es posible que el concepto de granularidad le resulte bastante útil. Por lo general, hablamos de que los recursos son de grano fino o grueso. En una arquitectura de microservicio, el diseño desacoplado inherente de la aplicación significa que los recursos suelen ser más pequeños, pero hay más de ellos, por lo que se consideran detallados. Al agrupar un puñado de recursos, el acceso a esos recursos es más fácil y rápido, razón por la cual las puertas de enlace API tienen esos dos primeros beneficios.

Puertas de enlace API frente a mallas de servicio

En este punto, vale la pena mencionar la idea de una malla de servicios. A pesar de algunas similitudes entre los dos, las mallas de servicio son en realidad bastante diferentes de las puertas de enlace API. La principal diferencia es que las puertas de enlace API facilitan la comunicación entre clientes y servicios, mientras que las mallas de servicio facilitan la comunicación solo entre servicios internos. Sin embargo, existe una superposición en la forma en que ambos patrones suelen contener funciones de enrutamiento, autenticación, limitación de velocidad y métricas.

La malla de servicios es un patrón más nuevo y algún día podría ser suficiente por sí sola. Por ahora, algunos profesionales combinan los dos enfoques, utilizando una puerta de enlace API para manejar el tráfico externo y una malla de servicios para manejar la interacción entre los microservicios individuales dentro de la aplicación.

Lea también: Las advertencias comerciales de los microservicios

La puerta de enlace API de Netflix

Uno de los ejemplos más citados de una puerta de enlace API es la puerta de enlace API de Netflix. En 2013, Netflix creó su primer marco especialmente diseñado para una puerta de enlace API: Zuul. Se encargó de todo lo que esperabas, desde la autorización hasta el enrutamiento y el análisis, brindando a Netflix todos esos beneficios de los que hablamos anteriormente.

Sin embargo, todas las llamadas a Zuul estaban bloqueadas, lo que significaba que el servidor tenía que responder a la llamada del cliente antes de que el hilo pudiera usarse nuevamente. Netflix decidió que necesitaban una solución llamada asincrónica, donde las llamadas no se bloqueaban y el hilo aún podía usarse incluso si el servidor no había respondido a la llamada del cliente. Y así nació Zuul 2.0 , un marco de puerta de enlace de código abierto.

Uno de los rasgos principales de la puerta de enlace API de Netflix es cómo enruta las solicitudes de más de 1000 tipos de dispositivos , proporcionando la información correcta a los clientes según el hardware y el software que estén ejecutando.

Pensamientos finales

Ahí lo tienes, puertas de enlace API en un lenguaje sencillo. Así es, una puerta de enlace API no es más que una capa entre sus clientes y servicios. Con una popularidad creciente debido al auge de la arquitectura de microservicios, las puertas de enlace de API ofrecen ventajas importantes desde la perspectiva de la gestión de API.

Publicar un comentario

0 Comentarios