Erstellen interaktiver Apps mithilfe von Microsoft Graph-APIs
In diesem Artikel wird ein gängiges Microsoft Graph-Integrationsmuster für ein Geschäftsszenario beschrieben, das eine Benutzeroberfläche erfordert, die Kanalnachrichten in Echtzeit erstellen, aktualisieren und verwalten kann. Dieses Szenario hängt von Microsoft 365-Diensten ab, z. B. dem Senden und Empfangen von Nachrichten von verschiedenen Teams.
Für dieses Szenario gelten die folgenden Architekturanforderungen:
- Ein Anwendungsintegrationstyp, da er auf komplexen Microsoft 365-Funktionen basiert.
- Ein bidirektionaler Datenfluss zwischen der App und Microsoft 365.
- Eine geringe Datenmenge im Vergleich zu automatisierten Systemen, die auf einzelnen menschlichen Interationen basieren. Je nach Anzahl der Benutzer kann das Datenvolumen jedoch hoch sein.
- Ein Echtzeitdatenvorgang für die App mit einigen asynchronen serverseitigen Vorgängen, z. B. dem Übermitteln von E-Mails an einen Remoteclient.
Die beste Wahl für diese Anwendung ist die Verwendung von RESTful-HTTP-APIs von Microsoft Graph. Die Client-App reagiert auf Benutzeraktionen und kann Anforderungen stellen und die Daten mit einer Geschwindigkeit verarbeiten, die von der Clientumgebung gesteuert wird.
Das folgende Diagramm zeigt die Architektur für diese Lösung.
Lösungskomponenten
Die Lösungsarchitektur umfasst die folgenden Komponenten:
- Azure App Service, mit dem Sie Web-Apps, mobile Back-Ends und RESTful-APIs in Ihrer bevorzugten Programmiersprache erstellen und hosten können, ohne die Infrastruktur zu verwalten. Es bietet automatische Skalierung und Hochverfügbarkeit, unterstützt sowohl Windows als auch Linux und ermöglicht automatisierte Bereitstellungen von GitHub, Azure DevOps oder einem beliebigen Git-Repository.
- Microsoft Entra ID ist erforderlich, um die Authentifizierung für Microsoft Graph-APIs zu verwalten, und unterstützt delegierte Berechtigungen und Anwendungsberechtigungen, um den OAuth-Fluss zu aktivieren.
- SQL-Datenbank wird verwendet, um Anwendungsdaten und den Zustand zu speichern. Diese Komponente ist optional.
- Restful-APIs von Microsoft Graph, auf die über einen einzelnen Endpunkt zugegriffen wird:
https://graph.microsoft.com
. - Eine App, die benutzerdefinierte Logik implementiert.
Überlegungen
Die folgenden Überlegungen unterstützen die Verwendung dieses Integrationsmusters:
Verfügbarkeit: Die Client-App fragt in regelmäßigen Abständen Microsoft Graph-APIs nach Daten ab. Die Client-App kann Anforderungen stellen und die Daten mit einer Geschwindigkeit verarbeiten, die von der Clientumgebung gesteuert wird.
Latenz: Die Client-App fragt Microsoft Graph-APIs in Echtzeit nach Daten ab. Abhängig von den Netzwerkbedingungen und der Auslastung des Microsoft Graph-Diensts kann es jedoch zu einer gewissen Latenz kommen.
Skalierbarkeit: Die Client-App kann horizontal skaliert werden, indem dem App Service Plan weitere Instanzen hinzugefügt werden. Microsoft Graph-APIs können eine große Anzahl von Anforderungen verarbeiten, verfügen aber auch über Drosselungsgrenzwerte und Richtlinien, um Missbrauch zu verhindern. Die Client-App sollte Wiederholungslogik und exponentielles Backoff implementieren, um Drosselungsfehler ordnungsgemäß zu behandeln.
Lösungskomplexität: Obwohl diese Lösung möglicherweise das Microsoft Graph SDK verwendet, erfordert sie dennoch benutzerdefinierten Code, um die Daten abzufragen und zu verarbeiten. Wenn das Datenvolumen groß ist, ist die sequenzielle Verarbeitung möglicherweise nicht ausreichend, und eine parallele Verarbeitung ist möglicherweise erforderlich. Aus diesem Grund weist diese Lösung eine mittlere Komplexität auf.