Exponieren Sie APIs von Apache APISIX für die Power Platform
February 27, 2023
Apache APISIX API Gateway ermöglicht es professionellen Entwicklern, ihren Backend-Dienst als APIs zu veröffentlichen, die Nutzung zu überwachen und diese APIs einfach für die Power Platform (Power Apps und Power Automate) als benutzerdefinierte Connectors verfügbar zu machen, um API Gateway-Endpunkte in benutzerdefinierte Apps zu integrieren, ohne Code von Grund auf schreiben zu müssen.
In diesem Artikel zeigen wir Ihnen, wie Sie einen benutzerdefinierten Connector für das Open-Source-Apache APISIX API Gateway in der Power Platform erstellen können, als Alternative zu Azure API Management, falls Sie zusätzliche Komponenten zu einem bestehenden System mit nutzbaren APIs aufbauen und die Infrastruktur Ihres Systems on-premises oder bei einem anderen Cloud-Dienstleister als Azure gehostet ist.
Lernziele
In diesem Artikel lernen Sie Folgendes:
- Vorteile der Integration von Power Apps mit Apache APISIX.
- Was ist ein benutzerdefinierter Connector?
- Einrichten eines neuen benutzerdefinierten Connectors für das Apache APISIX API Gateway in der Power Platform.
- Erstellen einer Canvas Mobile App in PowerApps, die den neuen benutzerdefinierten Connector verwendet.
Vorteile der Integration von Power Apps mit Apache APISIX
Die Integration von Power Apps mit Apache APISIX bietet Organisationen mehrere Vorteile. Ihre Power Apps können über das API Gateway auf Ihre APIs zugreifen, und Sie können zusätzliche Einstellungen auf APISIX konfigurieren.
Hier sind einige davon:
-
Erhöhte Sicherheit: Es bietet "erweiterte Anforderungsdrosselung", um unerwartete Fehler durch massive Anfragen an Backend-Systeme zu vermeiden, und richtet eine Ratenbegrenzungsrichtlinie für Ihre Backend-APIs, Authentifizierung und Verschlüsselung ein, die auf benutzerdefinierte Anwendungen angewendet werden kann.
-
Skalierbarkeit: Es bewältigt hohe Datenmengen und kann je nach Bedarf hoch- oder herunterskaliert werden. Dies bedeutet, dass benutzerdefinierte Anwendungen, die auf Power Apps basieren, mit zunehmendem Datenverkehr umgehen können, wenn das Unternehmen wächst.
-
Leistung: Es bietet Funktionen wie Lastenausgleich und Caching, die die Leistung von benutzerdefinierten Anwendungen, die auf Power Apps basieren, verbessern können.
Was ist ein benutzerdefinierter Connector?
Ein benutzerdefinierter Connector in Power Apps ist ein Tool, das Benutzern ermöglicht, eine Verbindung zwischen ihrer App und einer externen Datenquelle oder API herzustellen, die von Power Apps nicht nativ unterstützt wird. In unserem Fall ist dies Apache APISIX. Benutzerdefinierte Connectors bieten eine Möglichkeit, auf Daten und Dienste von externen Systemen innerhalb ihrer App zuzugreifen, ohne komplexen Code schreiben oder komplexe Konfigurationen durchführen zu müssen.
Benutzerdefinierte Connectors werden erstellt, indem die API-Endpunkte, Methoden und Authentifizierungsanforderungen des externen Systems zusammen mit allen notwendigen Parametern und Antwortformaten definiert werden. Sobald der benutzerdefinierte Connector erstellt und authentifiziert ist, kann er in Power Apps verwendet werden, um Operationen wie das Abrufen von Daten, das Erstellen von Datensätzen, das Aktualisieren von Datensätzen und das Löschen von Datensätzen durchzuführen.
Einrichten eines neuen benutzerdefinierten Connectors
Schauen wir uns ein Beispiel für die Konfiguration eines benutzerdefinierten Connectors für Apache APISIX an.
Für das Demoprojekt werden wir das Beispielprojekt nutzen, das auf ASP.NET Core WEB API mit einem einzigen GET
-Endpunkt (ruft die gesamte Produktliste ab) und dem Apache APISIX Docker-Beispielprojekt basiert. Sie finden in der README-Datei alle Anweisungen, wie Sie die Beispiel-App ausführen können.
Voraussetzungen
- Grundlegende Kenntnisse über API-Konzepte.
- Grundkenntnisse über einige APISIX-Kernkonzepte wie Route, Upstream und Plugin.
- Docker auf Ihrem Rechner installiert, um APISIX auszuführen.
- Installieren Sie APISIX und die Produkt-Backend-API mit
docker compose
. - Konfigurieren Sie die notwendigen Einstellungen wie den API-Endpunkt, Upstream und Routing-Regeln. Sie können diesem Tutorial folgen, um APISIX API Gateway einzurichten. Stellen Sie sicher, dass Sie die Route und den Upstream erstellen und dass APISIX die Anfrage an unsere Ziel-API
/api/products
weiterleitet. - Diese Übung erfordert Zugriff auf Power Apps Premium Connectors. Melden Sie sich für einen kostenlosen Developer Plan an.
Schritt 1: Starten des Assistenten für benutzerdefinierte Connectors
Um zu beginnen, melden Sie sich im Power Apps-Portal an und navigieren Sie zum Abschnitt "Connectors". Klicken Sie auf die Schaltfläche "New custom connector", wählen Sie dann "Create new from blank" und geben Sie einen Namen für den neuen Connector an.
Schritt 2: Geben Sie grundlegende Details für Ihren Connector an
Geben Sie im Tab "General" die folgenden Details für Ihren Connector ein:
- Connector-Name: Geben Sie Ihrem Connector einen Namen, z.B. "APISIX API Gateway".
- Beschreibung: Geben Sie eine kurze Beschreibung Ihres Connectors an.
- Schema: Stellen Sie sicher, dass Sie das richtige Schema auswählen, in diesem Fall sollten wir HTTP verwenden, da wir unsere API nicht für HTTPS konfiguriert haben.
- Setzen Sie ein Häkchen bei der Option "Connect via on-premises data gateway". Sie müssen ein On-Premise Data Gateway auf einem Rechner in Ihrem Netzwerk installieren. Da ein benutzerdefinierter Connector ohne die Verwendung eines On-Premises Data Gateways nicht localhost als Hostnamen haben kann.
- Basis-URL: Geben Sie die Basis-URL Ihres Apache APISIX API Gateways ein. Zum Beispiel
http://localhost:9080
.
Schritt 3: Wählen Sie einen Authentifizierungstyp aus
Wechseln Sie als Nächstes zum Tab "Security" und geben Sie die notwendigen Authentifizierungsdetails basierend auf dem Authentifizierungstyp an, den Ihr benutzerdefinierter Connector verwenden soll. Zum Beispiel Basic, OAuth2 oder API Key.
Schritt 4: Definieren Sie Ihre API-Endpunkte
Im Tab "Definition" können Sie die API-Endpunkte definieren, die Sie in Ihrem benutzerdefinierten Connector verfügbar machen möchten. Zum Beispiel könnten Sie einen Endpunkt definieren, um die gesamte Produktliste vom API Gateway abzurufen.
Um einen Endpunkt zu definieren, gehen Sie wie folgt vor:
- Name: Geben Sie einen Namen für Ihren Endpunkt ein, z.B. "Get Product List".
- Zusammenfassung: Geben Sie eine kurze Zusammenfassung dessen an, was der Endpunkt tut.
- Operations-ID: Geben Sie eine eindeutige Operations-ID für den Endpunkt ein, z.B. "GetProducts".
- Methode: Wählen Sie die HTTP-Methode aus, die Ihr Endpunkt verwendet, z.B. GET.
- URL: Geben Sie die API-Endpunkt-URL für Ihren Endpunkt ein, z.B.
/api/products
. - Anfrage: Geben Sie die Anfrageparameter und -header an, die Ihr Endpunkt benötigt.
- Antwort: Geben Sie das Antwort-Schema an, das Ihr Endpunkt zurückgibt.
Sie können so viele Endpunkte definieren, wie Sie für Ihren benutzerdefinierten Connector benötigen.
Schritt 5: Testen Sie Ihren benutzerdefinierten Connector
Sobald Sie Ihre Endpunkte definiert haben, können Sie Ihren benutzerdefinierten Connector testen, indem Sie auf den Tab "Test" klicken. Hier können Sie Beispieldaten für Ihre Anfragen eingeben und die Antworten sehen, die Ihr API Gateway zurückgibt.
Schritt 6: Speichern Sie Ihren benutzerdefinierten Connector
Nachdem Sie alle Endpunkte definiert und Ihren Connector getestet haben, klicken Sie auf die Schaltfläche "Create connector", um Ihre Änderungen zu speichern.
Ihr benutzerdefinierter Connector für das Apache APISIX API Gateway ist nun bereit, in Ihren Power Apps verwendet zu werden. Sie können ihn im nächsten Abschnitt verwenden, um eine benutzerdefinierte App zu erstellen, die mit Ihrem API Gateway-Endpunkt interagiert.
Erstellen einer neuen Power App
Jetzt erstellen wir eine neue mobile App mit einer einzigen Seite, die die Produktliste vom APISIX API Gateway-Endpunkt abruft, indem sie den benutzerdefinierten Connector verwendet, den wir im vorherigen Abschnitt erstellt haben.
Schritt 1: Erstellen Sie eine neue App für Produkte
Um zu beginnen, melden Sie sich im Power Apps-Portal an und erstellen Sie eine neue App, indem Sie "Create an app" auswählen. Wählen Sie die Option "Phone layout", um eine mobile App zu erstellen, und geben Sie einen Namen für Ihre App an.
Schritt 2: Fügen Sie eine Datenquelle hinzu
Fügen Sie im Tab "Data" Ihren Apache APISIX API Gateway benutzerdefinierten Connector als Datenquelle hinzu. Dies ermöglicht es Ihrer App, mit den API Gateway-Endpunkten zu interagieren, die in Ihrem benutzerdefinierten Connector definiert sind.
Schritt 3: Gestalten Sie Ihre Benutzeroberfläche
Gestalten Sie im Tab "Canvas" die Benutzeroberfläche für Ihre App. Sie können verschiedene UI-Steuerelemente wie Schaltflächen, Beschriftungen, Galerien und Formulare hinzufügen, um eine benutzerfreundliche und interaktive Oberfläche zu erstellen. In diesem Beispiel zeigen wir eine Liste von Produkten mit ihren Namen und Preisen.
Schritt 4: Definieren Sie Aktionen und Logik
Definieren Sie im Tab "Action" die Aktionen, die Ihre App ausführen soll, wenn der Benutzer mit den UI-Steuerelementen interagiert. Zum Beispiel könnten Sie eine Aktion definieren, um alle Produkte von Ihrem API Gateway abzurufen, sie in einer Galerie anzuzeigen und die Suchfunktionalität hinzuzufügen.
Schritt 5: Testen Sie Ihre App
Sobald Sie die Aktionen und die Logik für Ihre App definiert haben, können Sie sie testen, indem Sie auf die Schaltfläche "Preview" klicken. Hier können Sie mit den UI-Steuerelementen interagieren und die Daten sehen, die von Ihrem API Gateway abgerufen werden.
Schritt 6: Veröffentlichen Sie Ihre App
Nachdem Sie Ihre App getestet haben, können Sie sie veröffentlichen, um sie für Ihre Benutzer verfügbar zu machen. Sie können Ihre App auf verschiedenen Plattformen wie iOS, Android und Windows veröffentlichen.
Nächste Schritte
In diesem Artikel haben Sie gelernt, wie Sie die API beschreiben und den Apache APISIX benutzerdefinierten Connector definieren. Außerdem haben wir eine mobile App mit Power Apps erstellt, die das API Gateway mit seinem benutzerdefinierten Connector verwendet. Unser benutzerdefinierter Connector wird auf die gleiche Weise verwendet wie von Microsoft verwaltete Connectors. Das bedeutet, Sie können den Connector in einer Logic App, Power Automate usw. nutzen. Probieren Sie es also aus und sehen Sie, wie viel Sie mit Power Platform und Apache APISIX erreichen können.
Verwandte Ressourcen
-
Erstellen eines benutzerdefinierten Connectors von Grund auf
-
Exportieren von APIs aus Azure API Management in die Power Platform
-
Verwalten von .NET Microservices APIs mit Apache APISIX API Gateway
Empfohlene Inhalte
Community
🙋 Treten Sie der Apache APISIX Community bei 🐦 Folgen Sie uns auf Twitter 📝 Finden Sie uns auf Slack