Freigeben über


REST-APIs verwenden, um die Funktionalität von Canvas-Apps zu erweitern

Microsoft Power Platform ermöglicht Ihnen, die Funktionalität Ihrer Power Apps-Canvas-App mithilfe von REST-APIs zu erweitern. Wenn Sie mit komplexen Algorithmen oder vielen Datenquellen arbeiten, kann die Umlagerung der Logik von der Canvas-App auf die RESTful-API eine gute Wahl sein, um Ihre Formeln im Rahmen Ihrer Power Apps-Canvas-App einfach zu halten, während komplexere Funktionen serverseitig verschoben werden. Benutzerdefinierte Power Platform Connectors ermöglichen es Canvas-Apps, die REST-API wie eine andere Datenquelle zu verwenden.

Tipp

Der Artikel bietet ein Beispielszenario und eine visuelle Darstellung der Verwendung von REST-APIs, um die Funktionalität von Canvas-Apps zu erweitern. Bei dieser Lösung handelt es sich um eine verallgemeinerte Beispielszenarioarchitektur, die für viele verschiedene Szenarien und Branchen verwendet werden kann.

Architekturdiagramm

Architekturdiagramm, das den Workflow für die Verwendung von REST-APIs zur Erweiterung der Funktionalität von Canvas-Apps veranschaulicht

Workflow

  1. Canvas-App: Die Power Apps-Canvas-App verwendet den benutzerdefinierten Connector, um auf Vorgänge zuzugreifen, die von der Azure-Funktion verfügbar gemacht werden. Der Benutzer authentifiziert sich bei der Anwendung mit der Entra ID, und der Zugriff auf die Daten ist auf die Daten beschränkt, auf die der Benutzer Zugriff hat.
  2. Benutzerdefinierter Connector: Der benutzerdefinierte Connector beschreibt, welche Vorgänge die Anwendung über die REST-API verwenden kann, die im Beispiel durch eine Azure Funktion implementiert wird. Durch die Verwendung eines benutzerdefinierten Connectors kann die Power Apps-Canvas-App die Logik wie jede andere Datenquelle verwenden.
  3. Microsoft Entra ID-Apps: Die Azure-Funktion wird mithilfe einer Microsoft Entra ID-App gesichert. Eine zweite Microsoft Entra ID-App wird auf dem benutzerdefinierten Connector registriert und konfiguriert, um der Power Apps-Canvas-App den Zugriff auf die Vorgänge der Azure-Funktion zu ermöglichen.
  4. Azure-Funktion: Die Azure-Funktion implementiert die RESTful-API und bietet einen oder mehrere Vorgänge, die für die Power Apps-Canvas-App verfügbar gemacht werden, indem entweder ein benutzerdefinierter Connector aus dem Azure-Portal exportiert oder manuell konfiguriert wird. Die Azure-Funktion wird durch eine Entra ID-App-Registrierung gesichert, um sicherzustellen, dass nur autorisierte Aufrufer verwendet werden.
  5. Azure Cosmos DB: Die Azure-Funktion kann Azure Cosmos DB, Azure SQL oder einen anderen Cloud-Datenspeicher verwenden, den sie für die Verwaltung der Daten benötigt. Aufgrund der Komplexität der Logik könnte die Funktion tatsächlich mit Daten in Microsoft Dataverse arbeiten und dazu den Funktionsansatz verwenden.

Komponenten

  • Power Platform-Umgebung: Enthält die Power Platform-Ressourcen, wie die Power Apps, durch welche die Filial-App-Benutzererfahrung umsetzt. Diese Ressourcen werden mithilfe von Dataverse-Lösung von einer Umgebung in eine andere verschoben (z. B. von Dev nach Test).
  • Power Apps: Power Apps wird verwendet, um die Benutzererfahrung der Lösung zu implementieren. Ersteller können die Anwendung mithilfe des benutzerdefinierten Konnektors erstellen, der vom Entwickler der Azure Funktion als Anwendungsdatenquelle erstellt wurde.
  • Benutzerdefinierter Connector: Benutzerdefinierte Power Platform-Connectors beschreiben die Vorgänge und Datenstrukturen einer RESTful-API. Sie sorgen dafür, dass die API ganz einfach aus Ressourcen wie einer Power Apps-Canvas-App verwendet werden kann. Wenn sie von Power Apps verwendet werden, kann auf die API wie auf jede andere Datenquelle verwiesen werden.

Einzelheiten zum Szenario

Power Apps ermöglicht es Organisationen, eine maßgeschneiderte Benutzererfahrung zu erstellen, und durch die Verwendung von REST-APIs wird die Geschäftslogik zentralisiert und die Anwendung greift über einen benutzerdefinierten Connector darauf zu. Dieser Ansatz kann es der Power Apps-Anwendung auch ermöglichen, als Integrator mehrerer Back-End-Dienste zu fungieren und dem Benutzenden eine einzige Ansicht von Daten und Logik aus allen Quellen zu bieten. Mit dem REST-API-Ansatz können Sie auch die Komplexität der Interaktion mit mehreren anderen Systemen auf die Komponente verlagern, welche die REST-API implementiert, die Implementierung der Canvas-Anwendung vereinfachen und dabei trotzdem die gleiche Benutzererfahrung bieten.

Im oben stehenden Beispiel wird die Filial-App mit einer Power Apps-Canvas-App erstellt. Die Anwendung ermöglicht es einem Filialmitarbeiter, eine Benachrichtigungsanforderung für einen Kunden schnell zu speichern, wenn ein Artikel nicht vorrätig ist. Die Anwendung verwendet einen einzelnen Vorgang RecordBackorder, der auf einem benutzerdefinierten Konnektor konfiguriert ist, der einen Back-End-Vorgang der Azure-Funktion beschreibt. In diesem Beispiel ist die Azure-Funktion die Implementierung der REST-API. Sie können jede Technologie verwenden, die die Erstellung eines RESTful-Diensts ermöglicht, um dieses Muster zu implementieren.

Diese Architektur bietet Flexibilität, bedeutet aber auch, dass mehr Code-First-Entwicklungsarbeit erforderlich ist, um den RESTful-Service und die Datenschicht zu entwickeln und zu warten. Grundsätzlich sollten Sie, wenn die Canvas-App-Formeln immer komplexer werden, diese Art von Architektur in Betracht ziehen. Wenn beispielsweise mehrere Datenquellen zum Erstellen einer einzelnen Ansicht erforderlich sind, kann die Verwendung einer API-Schicht helfen, eine leistungsstarke Erfahrung bereitzustellen, da die Datenantwort serverseitig gestaltet und effizienter an den Client übermittelt werden kann. Die Verwendung dieser mittleren Ebene bedeutet, dass Sie eine serverseitige Caching-Ebene hinzufügen und eine umfassendere Telemetrie für die App implementieren können.

Überlegungen

Diese Überlegungen implementieren die Säulen von Power Platform Well-Architected, eine Reihe von Leitprinzipien, welche die Qualität einer Workload verbessern. Weitere Informationen finden Sie unter Microsoft Power Platform Well-Architected.

Zuverlässigkeit

Vermeiden Sie bei der Gestaltung Ihres Workload unnötige Komplexität: Die Verwendung des REST-API-Ansatzes von einer Power Apps-Anwendung über einen benutzerdefinierten Connector aus vermeidet unnötige Komplexität und zentralisiert die Logik dort, wo andere Anwendungen in der Organisation sie verwenden könnten. Der benutzerdefinierte Connector ermöglicht es dem Power Apps-Erstellenden, die Vorgänge der RESTFul-API wie jeden anderen Datenquellenvorgang zu verwenden.

Testen Sie auf Resilienz und Verfügbarkeit: Indem Sie die Logik von der Canvas-App zur REST-API verschieben, sollten Sie in der Lage sein, die API unabhängig von der App, die sie verwendet, zu testen.

Messen und veröffentlichen Sie Integritätsindikatoren: Telemetriedaten sollten von der REST-API-Komponente erfasst werden, um ihren Zustand nachzuverfolgen. Bei der Verwendung von Azure Monitor würde zum Beispiel die Application Insights-Protokollierung eine angemessene Nachverfolgung der Komponente sicherstellen.

Sicherheit

Erstellen Sie eine bewusste Segmentierungen und Perimeter: Es kann Ihre Segmentierungsrichtlinien unterstützten, wenn Sie sicherstellen, dass die Anwendung getrennte Power Platform-Umgebungen für die Unterstützung der Phasen des Anwendungslebenszyklus verwendet und dass nur die richtigen Benutzenden Zugriff auf die einzelnen Phasen haben. Es ist auch wichtig, dass die registrierten Entra ID-Apps zwischen den Umgebungen getrennt sind, um den Schutz der einzelnen Datenphasen zu gewährleisten und nicht zwischen den Umgebungen zu vermischen.

Betriebliche Effizienz

Setzen Sie sichere Bereitstellungspraktiken um: Standardisieren Sie die Bereitstellung aller Änderungen an der Power Apps-App mithilfe automatisierter Bereitstellungsprozesse wie Pipelines. Stufen Sie die Anwendung erst nach dem Testen der Änderungen in die Produktion hoch.

Implementieren Sie eine Strategie zur Entschärfung von Bereitstellungsfehlern: Angesichts der Abhängigkeit zwischen der Anwendung und der REST-API sollten Sie sicherstellen, dass Sie über eine getestete Strategie verfügen, um den Rollout einer der beiden abzufangen, wenn es nach dem Update einer der Komponenten zu Fehlern kommt.

Leistungsfähigkeit

Achten Sie beim Design auf die Erfüllung der Leistungsanforderungen: Bewerten Sie die Leistung Ihrer Lösung und die Anforderungen an das Datenvolumen. Dabei sollte auch bewertet werden, wie auf Daten zugegriffen wird und wie die direkte Verwendung verschiedener Datenquellen durch Power Apps möglicherweise zur Kommunikation mit zu vielen Datenquellen führt. Dies kann aufgrund der Latenz der einzelnen Anforderung, die an die einzelnen Datenspeicher gesendet wird, zu Leistungseinbußen führen. Wenn Ihre Anwendung z. B. über eine Logik verfügt, die über eine große Anzahl an Zeilen in der Datenquelle hinweg funktioniert, können Sie möglicherweise den gesamten Netzwerkdatenverkehr an die Azure-Back-End-Funktion verschieben. Reduzierung auf eine einzige Interaktion mit der REST-API, die wiederum die Interaktion mit den zahlreichen anderen Datenquellen verwalten würde, wo dies effektiver erfolgen könnte.

Optimieren Sie die Logik: Wenn die Logik in einer Canvas-App, Azure Functions oder einem ähnlichen Back-End komplexer wird, können RESTful-API-Implementierungen diese Logik an einen zentralen, wiederverwendbaren Dienst auslagern. Die Verwendung der benutzerdefinierten Konnektorfunktion zum Beschreiben dieser RESTful-APIs ermöglicht es Canvas-Apps, ihre konfigurierten Vorgänge wie jede andere Datenquelle zu verwenden.

Testen Sie die Leistung: Neben dem Testen auf Funktionalität und Fehler ist es wichtig, die Leistung zu testen und einen entsprechenden Ausgangspunkt zu entwickeln und sie im Rahmen Ihres Release-Zyklus zu bewerten, wenn die API empfindlich auf Änderungen der Arbeitsabschlusszeiten reagiert.

Umgebungsoptimierung

Achten Sie beim Design auf Effizienz: Anwendungen, die es Benutzenden ermöglichen, von einer einzigen Power Apps-Anwendung aus auf mehrere Datenquellen zuzugreifen, ohne dass sie mit mehreren einzelnen Anwendungen interagieren müssen, machen den Benutzenden effizienter und sind ein sinnvoller Einsatz einer stärker benutzerdefinierten visuellen Erfahrung.

Mitwirkende

Dieser Artikel wird von Microsoft gepflegt. Die folgenden Mitwirkenden haben diesen Artikel geschrieben.

Hauptautoren: