Funktionsweise von Azure API Management

Abgeschlossen

Im Folgenden wird die Funktionsweise von Azure API Management aus drei Blickwinkeln betrachtet. Dieses Wissen wird Ihnen bei der weiteren Auswertung helfen, ob Azure API Management eine geeignete Lösung für die Verwaltung der APIs Ihrer Organisation darstellt.

In dieser Lerneinheit erfahren Sie, wie Azure API Management für die folgenden Benutzertypen funktioniert:

  • API-Consumer
  • API-Anbieter
  • App-Entwickler

Funktionsweise von Azure API Management für API-Consumer

Ein API-Consumer ist eine Entität, die eine Datenanforderung an die API richtet. Beispielsweise könnte jede dieser Einheiten ein API-Consumer sein:

  • Mobile App
  • Web-App
  • IoT-Gerät

Die wichtigste Azure API Management-Komponente für Consumer ist das Gateway. Alle Consumer-API-Aufrufe werden zuerst an Ihren Gatewayendpunkt weitergeleitet. API-Consumer interagieren immer nur direkt mit dem Gateway und nie mit der tatsächlichen API-Bereitstellungsinstanz.

Das Gateway führt aus Sicht des Consumers viele Aufgaben aus, aber die folgenden sind die wichtigsten:

  • Authentifizierung. Das Gateway überwacht den Zugriff auf die API, indem Abonnementschlüssel, JWT-Token und andere Anmeldeinformationen des Consumers überprüft werden.
  • Sicherheit. Das Gateway verhindert eine missbräuchliche Nutzung der API, indem es vordefinierte Begrenzungen der Datenübertragungsrate und Nutzungskontingente des Consumers durchsetzt oder Anforderungen und Antworten anhand des API-Schemas überprüft.
  • Transformation. Das Gateway transformiert die API-Anforderung oder -Antwort nach Bedarf. Wenn der Back-End-Dienst z. B. mit XML-Daten antwortet, können Sie die API modernisieren, indem Sie das XML-Format automatisch in JSON transformieren, wie in der folgenden Abbildung dargestellt.
  • Routing: Nachdem eine API-Anforderung authentifiziert, überprüft und transformiert wurde, leitet das Gateway den Aufruf an den Back-End-Dienst weiter, durch den die API bereitgestellt wird.
  • Leistung. Das Gateway kann die Back-End-API-Antwort in einem Cache speichern. In Situationen, in denen die Back-End-Antwort im Laufe der Zeit statisch ist, ermöglicht die Bereitstellung nachfolgender Antworten aus dem Cache den Consumern schnellere Antwortzeiten und reduziert die Last auf dem Back-End-Server.

A mobile app requests a weather forecast using an API. The Azure API Management gateway routes the call to the backend server and then converts the server's XML response to JSON before returning it to the mobile app.

Funktionsweise von Azure API Management für API-Anbieter

Wenn Sie ein API-Anbieter sind, haben Sie auch nach der Veröffentlichung Ihrer APIs noch eine Menge Arbeit vor sich. Diese Arbeit umfasst Folgendes:

  • Festlegen von API-Richtlinien
  • Verwalten von API-Consumern
  • Verwalten von API-Revisionen und -Versionen
  • Überwachen und Analysieren Ihrer APIs

Sie können all diese Aufgaben und mehr mithilfe der Azure API Management-Verwaltungsschnittstelle im Azure-Portal durchführen. Oder mithilfe von Tools wie Azure CLI oder Azure PowerShell. Neben der Möglichkeit der Festlegung von API-Richtlinien (wie Sie es in der vorherigen Lerneinheit erfahren haben) können Sie mit der Verwaltungsschnittstelle die folgenden Aufgaben durchführen:

  • Definieren und Importieren von API-Spezifikationen. Importieren einer OpenAPI-Spezifikation, einer REST-API, einer SOAP-API (Simple Object Access Protocol) (die Sie optional in REST konvertieren können), einer WebSocket-API oder einer GraphQL-API. Sie können eine API auch erstellen, indem Sie Instanzen der folgenden Azure-Dienste importieren: Web-App, Container-App, Funktions-App, Logik-App und Service Fabric. Sie können auch eine leere API erstellen und manuell definieren.
  • Verwalten von Benutzern und Gruppen.
    • Ein Benutzer ist ein Entwicklerkonto. Es handelt sich um ein Konto für einen API-Consumer. Sie können Benutzer manuell hinzufügen oder Benutzer einladen, ein Konto zu erstellen, aber die meisten Benutzer erstellen ihre eigenen Konten über das Entwicklerportal.
    • Eine Gruppe ist eine Sammlung verwandter Benutzer. Sie können eine Gruppe einem bestimmten API-Produkt zuordnen, dann hat jeder Benutzer in dieser Gruppe Zugriff auf das Produkt im Entwicklerportal.
  • Packen von APIs in Produkte. In Azure API Management ist ein Produkt eine Gruppe verwandter APIs. Indem Sie mehrere APIs als einzelnes Produkt verpacken, können Sie das jeweilige Produkt konfigurieren, anstatt alle APIs separat zu konfigurieren. Beispielsweise Begrenzungen für Datenübertragungsraten und andere Richtlinien festlegen, Nutzungsbedingungen definieren, Gruppen hinzufügen usw. Diese Konfiguration wird auf alle APIs im Produkt angewendet. Nachdem Sie das Produkt veröffentlicht haben, können Consumer es abonnieren und dessen APIs mit einem einzelnen Abonnementschlüssel verwenden.
  • Verwalten von API-Revisionen und -Versionen. Wenn Ihr API-Entwicklerteam Änderungen an einer API vornehmen muss, können Sie die Änderung auf eine sichere und kontrollierte Weise, die sich nicht negativ auf die Consumer auswirkt, verfügbar machen, indem Sie Revisionen und Versionen verwenden:
    • Eine Revision ist eine relativ geringfügige Änderung oder ein Nonbreaking Change an einer API. Ihr Entwicklungsteam kann die Revision getrennt von der Produktions-API codieren und testen, wie in der folgenden Abbildung zu sehen. Wenn Ihre Revision dann für Consumer bereit ist, verwenden Sie die Azure API Management-Verwaltungsschnittstelle, um die aktualisierte API als aktuelle Revision festzulegen.
    • Eine Version ist eine relativ wichtige Änderung oder Breaking Change an einer API. Mit Azure API Management können Sie Entwicklern mehrere Versionen der API gleichzeitig anbieten. Außerdem bietet es mehrere Schemata für die Versionsverwaltung, einschließlich pfadbasierter, headerbasierter und auf Abfragezeichenfolge basierter Versionsverwaltung.
  • Überwachen und Analysieren von APIs. Die Verwaltungsschnittstelle enthält integrierte Überwachungstools, mit denen Sie den API-Datenverkehr in Echtzeit verfolgen und überprüfen können, sowie Analysen, mit denen Sie Erkenntnisse darüber gewinnen können, wie Consumer Ihre veröffentlichten APIs verwenden. Azure API Management unterstützt auch mehrere Azure-Tools zum Überwachen von APIs und Ausführen von Analyseworkloads. Zu den von Azure API Management unterstützten Azure-Diensten gehören Azure Monitor-Protokolle, Application Insights und Event Hubs.

Depiction of how revisions work in Azure API Management. API requests from consumers are routed to the current revision of the API, whereas API requests from the in-house development team are routed to the API revision.

Funktionsweise von Azure API Management für App-Entwickler

Mit Ausnahme des Verbrauchstarifs enthalten alle Azure API Management-Instanzen ein Entwicklerportal, in dem Sie Ihre APIs potenziellen und vorhandenen API-Consumern anzeigen. Das Entwicklerportal verfügt über eine Standardschnittstelle, die an das Branding und die Anforderungen Ihrer Organisation angepasst werden kann.

App-Entwickler mit Entwicklerkonten melden sich beim Entwicklerportal an (das auch Gastbenutzer akzeptiert, die noch kein Konto besitzen). Entwicklern wird dann eine Webschnittstelle angezeigt, mit der sie auf folgende Weise mit APIs interagieren können:

  • Zugreifen auf die API-Dokumentation. Entwickler können die Dokumentation lesen, die Sie für jede API bereitgestellt haben.
  • Testen einer API. Das Entwicklerportal bietet eine interaktive Konsole, mit der Entwickler eine API schnell und sicher testen können. Der Entwickler kann einen API-Vorgang auswählen, Parameterwerte hinzufügen und dann den Aufruf senden, um zu bestimmen, welche Antwort die API zurückgibt.
  • Überprüfen von API-Codebeispielen. Das Entwicklerportal bietet API-Aufrufbeispiele in mehreren Programmiersprachen, einschließlich C#, Java, JavaScript, PHP und Python.
  • Abonnieren einer API. Wenn sich ein Consumer für die Verwendung Ihrer API entscheidet, ermöglicht das Entwicklerportal dem Benutzer, ein Abonnement für die API zu erstellen und einen Abonnementschlüssel abzurufen, der beim Aufrufen der API verwendet werden soll.
  • Ausführen von Analysen. Das Entwicklerportal bietet Analysen zur Nutzung einer API durch den Entwickler.