Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Desarrollo Última actualización: 14 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

Pasarela API: Backend para Frontend

Analicemos qué es una pasarela de API, por qué es esencial tener una y cómo puede gestionar mejor las API. También exploraremos y enumeraremos algunas de las mejores pasarelas de API de código abierto y gestionadas disponibles en el mercado.

¿Qué es la pasarela API?

En Pasarela API es un concepto importante en una arquitectura de microservicios. Constituye un punto de entrada para clientes externos (cualquier cosa que no forme parte del sistema de microservicios). Es un componente que actúa como punto de entrada para una aplicación.

En otras palabras, una pasarela API es un servidor de gestión de API que tiene información sobre los puntos finales. También es capaz de realizar autenticación, limitación de velocidad, equilibrio de carga, etc.

Para tener una mejor idea de lo que es una pasarela API, necesitamos saber por qué es esencial tener una pasarela API.

¿Por qué necesitamos una pasarela API?

Para entender la necesidad de una pasarela API, vamos a analizar un caso de uso de una e-commerce aplicación.

Estudio de caso

Consideremos un caso de estudio de una página compleja (digamos una página de producto) de una aplicación de comercio electrónico. Si nos fijamos en la siguiente página de listado de productos de Amazon, podemos ver una gran cantidad de información necesaria para ser representado por esta página específica.

A título ilustrativo, vamos a enumerar todos los microservicios que podríamos necesitar para renderizar la página concreta anterior.

Considere Búsqueda de productos, inventario, envío, valoración y reseñas, motor de recomendación, comerciantes y finanzas y seguros. son los diferentes siete(7) microservicios que se utilizan para renderizar la página anterior.

P.D: Los siete (7) microservicios anteriores son sólo una suposición para explicar el concepto de pasarela API. En realidad, Amazon podría tener un número diferente de microservicios.

El problema

Dado que estos microservicios se han desplegado por separado en un servidor diferente, si un cliente quiere acceder a estos servicios, tiene que solicitar al menos siete(7) llamadas para una sola página.

Pero, ¿es realmente un buen planteamiento?

No creo que sea un enfoque recomendable porque tenemos que hacer siete llamadas diferentes, lo que sin duda afectaría al rendimiento, el consumo de recursos, el tiempo de carga, etc. El cliente también está estrechamente acoplado con todos los servicios, y supongamos que si tenemos que separar el Opiniones y valoraciones microservicios en dos servicios diferentes, tenemos que actualizar el código del cliente. El cliente tiene que hacer una llamada para obtener reseñas y otra para obtener valoraciones, lo cual no es realmente la mejor forma de abordarlo.

La solución

¿Cuál es el enfoque recomendado?

Es una pasarela API.

En este enfoque, tenemos una capa entre el cliente y los microservicios llamada pasarela API. Es un servicio de cara al público para todos los microservicios. Ahora, cualquier cliente que quiera acceder a los microservicios, tiene que llamar a la pasarela API. A su vez, la pasarela API realiza una llamada a todos los microservicios y obtiene cualquier respuesta que podamos necesitar. Este proceso se denomina composición de API.

En pocas palabras, una pasarela API se sitúa entre el cliente y los microservicios y actúa como pasarela para todos los microservicios.

No sólo esto, sino que el uso de una API Gateway nos beneficia de muchas maneras.

Ventajas de una pasarela API

Las pasarelas API nos ayudan a realizar pruebas A/B, almacenamiento en caché, gestión de cuotas de acceso, supervisión del estado de la API y control de versiones de la API, Pruebas con monos del caosmonetización, y mucho más. Vamos a tocar en algunos de los siguientes beneficios.

Seguridad 🛡️

Cada vez que se realiza una llamada a la API, ésta tiene que acceder a los servicios utilizando direcciones IP públicas. Esto expone a riesgos.

Mediante el uso de API Gateways, se puede acceder a estos microservicios utilizando únicamente direcciones IP privadas. Esto resulta en una forma más segura de la transacción de datos. Además, el uso de API Gateway también protege los datos de ataques maliciosos y DDoS.

Para garantizar la seguridad Certificado TLS es necesario, API Gateway se encarga de todas ellas manteniendo todas nuestras API detrás de una única IP estática o dominio y ayudando a protegerlas con claves, tokens y filtrado de IP.

Autenticación, autorización y tolerancia a fallos 🔐

autenticación rota

Es importante garantizar la autenticación y autorización del usuario que se conecta a las aplicaciones. El API Gateway lo facilita al ser un único punto de entrada y satisfacer fácilmente todos los requisitos. Así, sólo permite iniciar sesión a los usuarios autorizados, y a los usuarios autenticados realizar cambios, con lo que se gana en tolerancia a fallos.

Equilibrio de carga y enrutamiento 🚏.

En el caso de que entren múltiples peticiones y aumente el tráfico, API Gateway ayuda a ocuparse de ello. Se hace mediante la creación de múltiples servicios y llamándolos en como Round-Robin. Puede gestionar y encaminar las peticiones de los clientes en función de la segmentación de los usuarios. De este modo, se proporcionan contenidos de distinta calidad o velocidad a distintos usuarios.

equilibrio de carga

Consideremos un caso de uso en el que se definen dos microservicios para devolver imágenes/vídeos de baja calidad e imágenes/vídeos de alta calidad para un ordenador de sobremesa y un móvil, respectivamente.

En este caso, podemos configurar una pasarela API de forma que actúe como un enrutador y, si la solicitud procede de un móvil, enrute esa solicitud al servicio de imágenes/vídeos de baja calidad, y si la solicitud procede del escritorio, enrute al servicio de imágenes/vídeos de alta calidad. Este enrutamiento puede basarse en cabeceras, rutas, parámetros, etc.

Aislamiento

Si uno o más microservicios han sido añadidos a la aplicación o eliminados, no actualizaremos el código del cliente. En este caso, tenemos que realizar algunos cambios en la propia pasarela de API para realizar una llamada de acuerdo con los microservicios actualizados.

Proxy inverso y caché

Servir un archivo estático (HTML, JS, CSS, fuentes) por un microservicio no es el mejor uso, En este caso, podemos mover estos archivos a la pasarela de la API.

Una pasarela API puede guardar todos los contenidos estáticos y servirlos directamente al cliente. Del mismo modo, consideremos un servicio que evalúa las tendencias de los productos, y estas tendencias se calculan cada hora o cada día. Por tanto, una vez calculada la tendencia para el resto del tiempo, el servicio devolverá la misma respuesta repetidamente. En este caso, una pasarela API tiene una función llamada caché de respuesta, donde podemos mencionar una URL y el umbral de tiempo durante el cual necesita almacenar en caché las respuestas.

Adaptador de protocolo

Si queremos aprovechar protocolos como web socket o una versión más reciente de HTTP, es decir, HTTP/2e incluso si nuestros servicios backend no están preparados o no son compatibles con HTTP/2 o web socket, una pasarela API puede asumir la responsabilidad de convertir un protocolo más reciente en uno más antiguo. Puede actuar como un adaptador de protocolo.

Exploremos la pasarela API.

En primer lugar❤️ y soluciones autoalojadas.

Pasarela Kong

Pasarela Kong es la pasarela de API nativa en la nube de código abierto más popular construida sobre un proxy ligero. Está escrito en Lua funcionando con la ayuda de Nginx. Es un motor de plantillas que ayuda a acelerar el tiempo de eventos. Garantiza ofrecer un rendimiento de latencia y una escalabilidad sin precedentes para todas nuestras aplicaciones de microservicios, independientemente de dónde se ejecuten.

Empresas como Nasdaq, Honeywell, Cisco, FAB, Expedia, Samsung, Siemens, y Yahoo Japón utilizar ampliamente la pasarela API de Kong.

Algunas de las prestaciones que ofrece Kong son:

  • Autenticación
  • Control del tráfico
  • Analítica
  • Transformaciones
  • Registro
  • Sin servidor
  • Ampliable mediante arquitectura de plugins

Kong se puso muy bueno documentación y integración.

Puede ejecutar Kong en su plataforma en la nube.

Apache APISIX

Apache APISIX nació inicialmente en la tecnológica china ZhiLiu y, en una fase posterior, entró en la incubadora de apache y se convirtió en código abierto. El vicepresidente del proyecto Ming Wenafirma que esta pasarela de API resuelve varios retos planteados por los microservicios y la nube nativa.

Apache ApiSix está siendo utilizado por empresas como 360, HelloTalk, NetEase, TravelSkyy muchos más.

Apache APISIX se basa en Nginx y etcd, y dispone de enrutamiento dinámico y carga en caliente de plug-ins, lo que resulta especialmente adecuado para la gestión de API en el marco del sistema de microservicios.

Tyk

Tyk es una pasarela API de código abierto preparada para empresas. Tiene la opción de elegir entre autoalojamiento o gestión.

Estas son algunas de las funciones que ofrece TYK.

  • Autenticación
  • Cuotas y limitación de tarifas
  • Control de versiones
  • Notificaciones y eventos
  • Simular API
  • Seguimiento y análisis detallados
  • Compatibilidad con versiones anteriores
  • GraphQL listo para usar

TYK también está disponible en Mercado AWS. Una buena opción si su pila de aplicaciones está en AWS.

Ocelot

Ocelot es una pasarela API .NET.

Este proyecto tiene como objetivo utilizar .NET, ejecutando microservicios o arquitectura orientada a servicios que necesita un punto unificado de entrada en su sistema. Sin embargo, funcionará con cualquier cosa que hable HTTP y se ejecute en cualquier plataforma compatible con ASP.NET Core.

Ocelot actúa como middleware en un orden específico. Manipula el objeto HttpRequest en un estado especificado por su configuración hasta que llega a un middleware constructor de peticiones. Este crea un objeto HttpRequestMessage, que se utiliza para solicitar un servicio posterior. El middleware que realiza la petición es el último en el pipeline de Ocelot. No llama al siguiente middleware. Un middleware asigna el HttpResponseMessage al objeto HttpResponse y lo devuelve al cliente.

Ocelot ofrece funciones estándar como enrutamiento, autenticación, limitación de velocidad, almacenamiento en caché, equilibrio de carga, etc. No ofrece soporte para Chunked Encoding, Forwarding a host header y Swagger.

Goku

Pasarela API Goku es un proyecto paraguas de EOLINK Inc. Se trata de una pasarela de microservicios basada en Golang que permite el enrutamiento dinámico de alto rendimiento, la orquestación de servicios, la gestión multiarrendamiento, el control de acceso a API, etc.

Goku ofrece una interfaz gráfica y un sistema de plug-ins para facilitar la configuración y aumentar la comodidad de la ampliación. Además de las funciones estándar, Goku ofrece agrupación en clústeres, actualizaciones en caliente, alertas, registro, etc.

Pasarela exprés

Pasarela exprés se basa en Express.js. Express Gateway es un conjunto de componentes que se construyen declarativamente alrededor de Express para satisfacer el caso de uso de API Gateway. La potencia de Express Gateway se aprovecha del rico ecosistema en torno al middleware Express.

express

Empresas como Joyent, Fundación Linux, VIRICITI, Switch Media, Coozy, y Musement utilizan mucho Express Gateway.

Es sencillo, rápido y ofrece todas las funciones básicas.

Gloo

Gloo es una pasarela API de última generación con todas las funciones y un controlador de entrada para entornos nativos en la nube. Se basa en Envoy Proxy para conectar, proteger y controlar el tráfico a través de sus servicios de aplicaciones.

Gloo soporta la conexión a una amplia gama de cargas de trabajo para asegurar y gestionar que, y es excepcional en su enrutamiento nivel funcional. Está disponible tanto en versión open-source como enterprise. La versión empresarial ofrece lo siguiente.

  • Portal del desarrollador
  • WAF
  • Prevención de la pérdida de datos
  • Más formas de autenticación
  • Limitación avanzada de la velocidad y gestión multicluster

KrakenD

KrakenD es una API Gateway de código abierto de altísimo rendimiento. Su funcionalidad principal es crear una API que actúe como agregador de muchos microservicios en puntos finales únicos, haciendo el trabajo pesado automáticamente por ti: agregar, transformar, filtrar, decodificar, acelerar, autenticar y más.

Ofrece una forma declarativa de crear los puntos finales. Está bien estructurado y estratificado, y abierto a la ampliación de su funcionalidad mediante middleware plug-and-play desarrollado por la comunidad o internamente.

KrakenD afirma ser más rápido que Kong y Tyk. Echa un vistazo a la resultados de la evaluación comparativa.

Fusio

Fusio es un sistema de gestión de API porque ayuda a desarrollar puntos finales de API reales (es decir, solicitar y transformar datos de una base de datos). No se limita a realizar peticiones proxy a otra API. Proporciona un backend sencillo e intuitivo para controlar y gestionar su API.

YouTube vídeo

Algunas de las prestaciones que ofrece Fusio son:

  • Monetización
  • Apoyo a la suscripción
  • Generar la especificación del esquema OAI, RAML
  • Documentación

y otras funciones estándar de la pasarela API.

WSO2

WSO2 es una solución de gestión de API de ciclo de vida completo que puede ejecutarse en cualquier lugar. Puede desplegarse on-prem, en la nube o de forma híbrida, donde sus componentes pueden distribuirse y desplegarse en múltiples infraestructuras en la nube y on-prem.

YouTube vídeo

Comprende una pasarela de API nativa en la nube y proporciona un operador de Kubernetes para convertir fácilmente microservicios sin procesar en API gestionadas. API Manager se integra con mallas de servicio y proporciona un plano de gestión y un plano de control completos para gestionar, supervisar y monetizar las API y los productos API.

Admite la publicación de API, la gestión del ciclo de vida, el desarrollo de aplicaciones, el control de acceso, la limitación de tarifas y el análisis en un sistema perfectamente integrado.

Siguienteexploremos las plataformas comerciales.

Apigee

Apigee es una plataforma de gestión de API entre nubes de Google Cloud.

apigee

Se presenta en los siguientes sabores:

  • Apigee: una solución SaaS alojada en la que usted paga por lo que utiliza. Usted se centra en la creación de negocio y descarga la gestión del entorno de Apigee a GCP.
  • Híbrido Apigee: le permiten gestionar API locales, en Google Cloud Platform (GCP) o en una combinación de ambas.

Apigee ofrece gestión de API de extremo a extremo, que incluye monetización y supervisión integrada.

Puntos finales en la nube

Otra de Google Cloud.

YouTube vídeo

Puntos finales es una versión más ligera de Apigee de Google Cloud. Es la más adecuada para que los desarrolladores desarrollen, desplieguen y gestionen API en cualquier back-end de Google Cloud. Proporciona herramientas y librerías para sus clientes desde la aplicación App Engine. Ayuda a crear y configurar utilizando Google Codelab. Codelab ayuda a ejecutar API de ejemplo utilizando App Engine en Java 8 y Maven 3.6.0.

Google Cloud Endpoints se integra estrechamente con otros productos como Trace and Logging para monitorización, Auth0 y Firebase para autenticación, GKE y App Engine para despliegue automatizado, etc.

Puerta de enlace API de Amazon

AWS puede ofrecerle cualquier cosa que necesite para ejecutar sus aplicaciones.

También la API.

Puerta de enlace API de Amazon es un servicio totalmente gestionado que está hecho para que los desarrolladores formen - > publiquen -> mantengan y aseguren APIs fácilmente a cualquier escala. Es compatible con las API RESTful y WebSocket y nos permite habilitar la comunicación bidireccional en tiempo real.

A continuación se muestra la representación pictórica de Amazon, que ilustra cómo funciona la pasarela API de Amazon.

Si tus microservicios o API ya están alojados en AWS, entonces tiene sentido integrarlos con Amazon API Gateway. Ofrecen 1 millón de llamadas a la API en la capa FREE, que es buena para que veas cómo funciona.

Azure

¿Por qué dejar atrás Azure?

Microsoft Azure ofrece gestión de API de extremo a extremo en la nube, en las instalaciones o híbrida. Puede gestionar la gestión de API mediante programación a través de REST API y SDK.

Buenas noticias si utiliza SOAP. Puedes importar el lenguaje de descripción de servicios web (WSDL) de su servicio SOAP y Azure creará un front-end SOAP. Ofrecen todas las funciones estándar, incluida la monetización. Anímate y pruébalo para experimentar la plataforma.

Conclusión

Una vez que su API esté lista, no olvide monitor y seguro ellos. Si aún está en fase de desarrollo, eche un vistazo a estos herramientas para agilizar las pruebas y el desarrollo de la API.

Lo anterior debería darle una idea de las soluciones de gestión y pasarela de API disponibles. Si tienes un presupuesto ajustado, puedes probar las de código abierto. Lo mejor es instalar algunos de ellos en su VM en la nube para ver qué te funciona.

Buena suerte.

  • Asad Ali
    Autor
Gracias a nuestros patrocinadores
Más lecturas sobre desarrollo
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba el lunes
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder