Tutorial: Transformieren und Schützen Ihrer API
GILT FÜR: Alle API Management-Ebenen
In diesem Tutorial erfahren Sie, wie Sie Richtlinien konfigurieren, um Ihre API zu schützen oder zu transformieren. Richtlinien sind eine Sammlung von Anweisungen, die bei Anfragen oder Antworten einer API nacheinander ausgeführt werden und das Verhalten der API ändern.
Sie können beispielsweise einen benutzerdefinierten Antwortheader festlegen. Sie können Ihre Back-End-API auch schützen, indem Sie eine Richtlinie zur Ratenbegrenzung konfigurieren, damit die API bei der Entwicklung nicht überlastet wird. Diese Beispiele bieten eine einfache Einführung in API-Verwaltungsrichtlinien. Weitere Richtlinienmöglichkeiten finden Sie unter API Management Richtlinien.
Hinweis
Standardmäßig konfiguriert API Management eine globale forward-request
-Richtlinie. Die forward-request
-Richtlinie ist für das Gateway erforderlich, Anforderungen an Back-End-Dienste durchzuführen.
In diesem Tutorial lernen Sie Folgendes:
- Transformieren einer API zum Festlegen eines benutzerdefinierten Antwortheaders
- Schützen einer API durch das Hinzufügen einer Richtlinie für ein Aufruflimit (Drosselung)
- Testen der Transformationen
Voraussetzungen
- Machen Sie sich mit der Azure API Management-Terminologie vertraut.
- Machen Sie sich mit dem Konzept von Richtlinien in Azure API Management vertraut.
- Bearbeiten Sie den folgenden Schnellstart: Erstellen einer neuen Azure API Management-Dienstinstanz Sie sollten für dieses Tutorial eine der klassischen oder v2-Dienstebenen verwenden, z. B. „Developer“ oder „Basic v2“. Die Dienstebene „Verbrauch“ unterstützt nicht alle Richtlinien, die in diesem Tutorial verwendet werden.
- Absolvieren Sie außerdem das folgende Tutorial: Importieren und Veröffentlichen Ihrer ersten API.
Navigieren zur API Management-Instanz
Suchen Sie im Azure-Portal nach API Management-Dienste, und wählen Sie diese Option aus.
Wählen Sie auf der Seite API Management-Dienste Ihre API Management-Instanz aus.
Testen der ursprünglichen Antwort
So zeigen Sie die ursprüngliche Antwort an
- Wählen Sie in der API Management-Dienstinstanz APIs aus.
- Wählen Sie in der API-Liste Swagger Petstore aus.
- Wählen Sie oben auf der Seite die Registerkarte Testen aus.
- Wählen Sie den Vorgang GET Finds pets by status (Haustiere nach Status suchen) und optional einen anderen Wert für den Abfrageparameter Status aus. Wählen Sie Send (Senden) aus.
Die ursprüngliche API-Antwort sollte etwa wie folgende Antwort aussehen:
Transformieren einer API zum Hinzufügen eines benutzerdefinierten Antwortheaders
API Management bietet mehrere Transformationsrichtlinien, die Sie zum Ändern von Anforderungs- oder Antwortnutzdaten, Headern oder Statuscodes verwenden können. In diesem Beispiel legen Sie in der API-Antwort einen benutzerdefinierten Antwortheader fest.
Festlegen der Transformationsrichtlinie
In diesem Abschnitt erfahren Sie, wie Sie mithilfe der Richtlinie set-header
einen benutzerdefinierten Antwortheader konfigurieren. Hier verwenden Sie einen formularbasierten Richtlinien-Editor, der die Richtlinienkonfiguration vereinfacht.
Wählen Sie Swagger Petstore>Entwerfen>Alle Vorgänge aus.
Klicken Sie im Abschnitt Ausgehende Verarbeitung auf Richtlinie hinzufügen.
Wählen Sie im Fenster Ausgehende Richtlinie hinzufügen die Option Header festlegen aus.
Gehen Sie zum Konfigurieren der Richtlinie zum Festlegen von Headern wie folgt vor:
- Geben Sie unter Name den Begriff Custom ein.
- Wählen Sie unter Wert die Option + Wert hinzufügen aus. Geben Sie My custom value ein.
- Wählen Sie Speichern.
Nach der Konfiguration wird ein set-header-Richtlinienelemente im Abschnitt Ausgehende Verarbeitung angezeigt.
Schützen einer API durch das Hinzufügen einer Richtlinie für ein Aufruflimit (Drosselung)
In diesem Abschnitt wird gezeigt, wie Sie Ihre Back-End-API schützen, indem Sie Ratenbegrenzungen konfigurieren, sodass die API von Entwicklern nicht überlastet ist. In diesem Beispiel wird gezeigt, wie Sie die Richtlinie rate-limit-by-key
mithilfe des Code-Editors konfigurieren. In diesem Beispiel wird der Grenzwert auf drei Aufrufe pro 15 Sekunden festgelegt. Nach 15 Sekunden kann ein Entwickler die API erneut aufrufen.
Hinweis
Diese Richtlinie wird auf der Dienstebene „Verbrauch“ nicht unterstützt.
Wählen Sie Swagger Petstore>Entwerfen>Alle Vorgänge aus.
Wählen Sie im Abschnitt Eingehende Verarbeitung das Code-Editor-Symbol (</>) aus.
Positionieren Sie den Cursor innerhalb des
<inbound>
-Elements in einer leeren Zeile. Wählen Sie dann Codeausschnitte anzeigen in der oberen rechten Ecke des Bildschirms aus.Wählen Sie im rechten Fenster unter Richtlinien für die Zugriffsbeschränkung die Option Aufrufrate pro Schlüssel einschränken.
Das Element
<rate-limit-by-key />
wird an der Position des Cursors hinzugefügt.Ändern Sie Ihren
<rate-limit-by-key />
-Code im Element<inbound>
folgendermaßen ab: Klicken Sie dann auf Speichern.<rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
Testen der Transformationen
Zu diesem Zeitpunkt sieht Ihre Richtlinie in etwa wie folgt aus, wenn Sie den Code im Code-Editor betrachten:
<policies>
<inbound>
<rate-limit calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
<base />
</inbound>
<outbound>
<set-header name="Custom" exists-action="override">
<value>"My custom value"</value>
</set-header>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
Im verbleibenden Teil dieses Abschnitts werden die Richtlinientransformationen getestet, die Sie in diesem Artikel festgelegt haben.
Testen des benutzerdefinierten Antwortheaders
Wählen Sie Swagger Petstore>Testen aus.
Wählen Sie den Vorgang GET Finds pets by status (Haustiere nach Status suchen) und optional einen anderen Wert für den Abfrageparameter Status aus. Wählen Sie Send (Senden) aus.
Wie Sie sehen können, wurde der benutzerdefinierte Antwortheader hinzugefügt:
Testen des Aufruflimits (Drosselung)
Wählen Sie Swagger Petstore>Testen aus.
Wählen Sie den Vorgang GET Finds Pets by Status (Haustiere nach Status suchen) aus. Wählen Sie mehrmals nacheinander Senden aus.
Nachdem Sie zu viele Anforderungen im konfigurierten Zeitraum übermittelt haben, erhalten Sie die Antwort 429: Zu viele Anforderungen.
Warten Sie 15 Sekunden oder länger, und wählen Sie dann erneut Senden aus. Jetzt sollten Sie die Antwort 200 OK erhalten.
Zusammenfassung
In diesem Tutorial haben Sie Folgendes gelernt:
- Transformieren einer API zum Festlegen eines benutzerdefinierten Antwortheaders
- Schützen einer API durch das Hinzufügen einer Richtlinie für ein Aufruflimit (Drosselung)
- Testen der Transformationen
Nächste Schritte
Fahren Sie mit dem nächsten Tutorial fort: