Exponer APIs de Apache APISIX en Power Platform
February 27, 2023
Apache APISIX API Gateway permite a los desarrolladores profesionales publicar sus servicios backend como APIs, monitorear su uso y exponer fácilmente estas APIs a la Power Platform (Power Apps y Power Automate) como conectores personalizados para su descubrimiento e integrar los endpoints del API Gateway en aplicaciones personalizadas sin tener que escribir código desde cero.
En este artículo, te mostraremos cómo crear un conector personalizado para el API Gateway de código abierto Apache APISIX en Power Platform como una alternativa a Azure API Management en caso de que estés construyendo componentes adicionales para un sistema existente con APIs utilizables y la infraestructura de tu sistema esté alojada en las instalaciones o en otros proveedores de servicios en la nube en lugar de Azure.
Objetivos de aprendizaje
A lo largo del artículo, aprenderás lo siguiente:
- Beneficios de integrar Power Apps con Apache APISIX.
- ¿Qué es un conector personalizado?
- Configurar un nuevo conector personalizado para el API Gateway de Apache APISIX en Power Platform.
- Crear una aplicación móvil Canvas en PowerApps que utilice el nuevo conector personalizado.
Beneficios de integrar Power Apps con Apache APISIX
Integrar Power Apps con Apache APISIX ofrece varios beneficios a las organizaciones. Tus Power Apps pueden acceder a tus APIs a través del API Gateway y puedes configurar ajustes adicionales en APISIX.
Aquí hay algunos de ellos:
-
Seguridad mejorada: Ofrece "limitación avanzada de solicitudes" para evitar errores inesperados causados por un gran volumen de solicitudes a los sistemas backend y configurar políticas de límite de tasa para tus APIs backend, autenticación y cifrado que pueden aplicarse a aplicaciones personalizadas.
-
Escalabilidad: Maneja grandes volúmenes de tráfico y puede escalar hacia arriba o hacia abajo según la demanda. Esto significa que las aplicaciones personalizadas construidas en Power Apps pueden manejar volúmenes crecientes de tráfico a medida que el negocio crece.
-
Rendimiento: Proporciona características como balanceo de carga y almacenamiento en caché que pueden mejorar el rendimiento de las aplicaciones personalizadas construidas en Power Apps.
¿Qué es un conector personalizado?
Un conector personalizado en Power Apps es una herramienta que permite a los usuarios crear una conexión entre su aplicación y una fuente de datos externa o una API que no es compatible de forma nativa por Power Apps. En nuestro caso, es Apache APISIX. Los conectores personalizados proporcionan una forma para que los usuarios accedan a datos y servicios de sistemas externos dentro de su aplicación sin tener que escribir código complejo o realizar configuraciones complicadas.
Los conectores personalizados se crean definiendo los endpoints de la API, los métodos y los requisitos de autenticación del sistema externo, junto con los parámetros necesarios y los formatos de respuesta. Una vez que el conector personalizado se crea y autentica, se puede usar en Power Apps para realizar operaciones como recuperar datos, crear registros, actualizar registros y eliminar registros.
Configurar un nuevo conector personalizado
Veamos un ejemplo de cómo configurar un conector personalizado para Apache APISIX.
Para el caso de demostración, utilizaremos el proyecto de muestra construido en ASP.NET Core WEB API con un solo endpoint GET
(recupera la lista de todos los productos) y el proyecto de muestra de Docker de Apache APISIX. Puedes encontrar en el archivo README todas las instrucciones sobre cómo ejecutar la aplicación de muestra.
Requisitos previos
- Debes estar familiarizado con los conceptos fundamentales de las APIs.
- Conocimiento básico sobre algunos conceptos centrales de APISIX, como Route, Upstream y Plugin.
- Docker instalado en tu máquina para ejecutar APISIX.
- Instalar APISIX y la API backend de Productos con
docker compose
. - Configurar los ajustes necesarios, como el endpoint de la API, el upstream y las reglas de enrutamiento. Puedes seguir este tutorial para configurar el API Gateway de APISIX. Asegúrate de crear la Route y el upstream, y APISIX debería reenviar la solicitud a nuestra API objetivo
/api/products
. - Este ejercicio requiere acceso a conectores Premium de Power Apps. Regístrate en un plan de desarrollador gratuito.
Paso 1: Iniciar el asistente de conector personalizado
Para comenzar, inicia sesión en el portal de Power Apps y navega a la sección "Connectors". Haz clic en el botón "New custom connector", luego elige "Create new from blank" y proporciona un nombre para el nuevo conector.
Paso 2: Proporcionar detalles básicos para tu conector
En la pestaña "General", ingresa los siguientes detalles para tu conector:
- Nombre del conector: Dale un nombre a tu conector, como "APISIX API Gateway".
- Descripción: Proporciona una breve descripción de tu conector.
- Esquema: Asegúrate de seleccionar el esquema correcto, para este caso, deberíamos usar HTTP, ya que no hemos configurado nuestra API para usar HTTPS.
- Marca la opción "Connect via on-premises data gateway". Necesitarás instalar una puerta de enlace de datos local en una máquina dentro de tu red. Porque el conector personalizado no puede tener localhost como nombre de host sin usar una puerta de enlace de datos local.
- URL base: Ingresa la URL base de tu API Gateway de Apache APISIX. Por ejemplo,
http://localhost:9080
.
Paso 3: Elegir un tipo de autenticación
A continuación, cambia a la pestaña "Security" y proporciona los detalles de autenticación necesarios según el tipo de autenticación que tu conector personalizado va a usar. Por ejemplo, Basic, OAuth2 o API Key.
Paso 4: Definir los endpoints de tu API
En la pestaña "Definition", puedes definir los endpoints de la API que deseas exponer en tu conector personalizado. Por ejemplo, podrías definir un endpoint para recuperar la lista de todos los productos del API Gateway.
Para definir un endpoint, sigue estos pasos:
- Nombre: Ingresa un nombre para tu endpoint, como "Obtener lista de productos".
- Resumen: Proporciona un breve resumen de lo que hace el endpoint.
- ID de operación: Ingresa un ID de operación único para el endpoint, como "GetProducts".
- Método: Elige el método HTTP que usa tu endpoint, como GET.
- URL: Ingresa la URL del endpoint de la API para tu endpoint, como
/api/products
. - Solicitud: Especifica los parámetros y encabezados de la solicitud que requiere tu endpoint.
- Respuesta: Especifica el esquema de respuesta que devuelve tu endpoint.
Puedes definir tantos endpoints como necesites para tu conector personalizado.
Paso 5: Probar tu conector personalizado
Una vez que hayas definido tus endpoints, puedes probar tu conector personalizado haciendo clic en la pestaña "Test". Aquí, puedes ingresar datos de muestra para tus solicitudes y ver las respuestas que devuelve tu API Gateway.
Paso 6: Guardar tu conector personalizado
Después de haber definido todos los endpoints y probado tu conector, haz clic en el botón "Create connector" para guardar tus cambios.
Tu conector personalizado para el API Gateway de Apache APISIX ahora está listo para usar en tus Power Apps. Puedes usarlo para construir una aplicación personalizada en la siguiente sección que interactúe con el endpoint de tu API Gateway.
Crear una nueva Power App
Ahora construiremos una nueva aplicación móvil con una sola página que obtenga la lista de productos del endpoint del API Gateway de APISIX utilizando el conector personalizado que creamos en la sección anterior.
Paso 1: Crear una nueva aplicación para Productos
Para comenzar, inicia sesión en el portal de Power Apps y crea una nueva aplicación seleccionando "Create an app". Elige la opción "Phone layout" para crear una aplicación móvil y proporciona un nombre para tu aplicación.
Paso 2: Agregar una fuente de datos
En la pestaña "Data", agrega tu conector personalizado del API Gateway de Apache APISIX como una fuente de datos. Esto permitirá que tu aplicación interactúe con los endpoints del API Gateway definidos en tu conector personalizado.
Paso 3: Diseñar tu interfaz de usuario
En la pestaña "Canvas", diseña la interfaz de usuario para tu aplicación. Puedes agregar varios controles de UI como botones, etiquetas, galerías y formularios para crear una interfaz amigable e interactiva. En este ejemplo, mostramos una lista de productos con sus nombres y precios.
Paso 4: Definir acciones y lógica
En la pestaña "Action", define las acciones que tu aplicación debe realizar cuando el usuario interactúe con los controles de UI. Por ejemplo, podrías definir una acción para recuperar todos los productos de tu API Gateway, mostrarlos en una galería y agregar la funcionalidad de búsqueda.
Paso 5: Probar tu aplicación
Una vez que hayas definido las acciones y la lógica para tu aplicación, puedes probarla haciendo clic en el botón "Preview". Aquí, puedes interactuar con los controles de UI y ver los datos recuperados de tu API Gateway.
Paso 6: Publicar tu aplicación
Después de haber probado tu aplicación, puedes publicarla para que esté disponible para tus usuarios. Puedes publicar tu aplicación en varias plataformas como iOS, Android y Windows.
Próximos pasos
En este artículo, aprendiste cómo describir la API y definir el conector personalizado de Apache APISIX. También creamos la aplicación móvil con Power Apps que utiliza el API Gateway con su conector personalizado. Nuestro conector personalizado se usa de la misma manera que los conectores administrados por Microsoft. Esto significa que puedes aprovechar el conector en una Logic App, Power Automate también. Así que adelante, pruébalo y ve cuánto puedes lograr con Power Platform y Apache APISIX.
Recursos relacionados
Contenido recomendado
Comunidad
🙋 Únete a la comunidad de Apache APISIX 🐦 Síguenos en Twitter 📝 Encuéntranos en Slack