Freigeben über


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

Screenshot: API Management-Richtlinien im Portal

Voraussetzungen

Navigieren zur API Management-Instanz

  1. Suchen Sie im Azure-Portal nach API Management-Dienste, und wählen Sie diese Option aus.

    Auswählen von API Management-Dienste

  2. Wählen Sie auf der Seite API Management-Dienste Ihre API Management-Instanz aus.

    Auswählen Ihrer API Management-Instanz

Testen der ursprünglichen Antwort

So zeigen Sie die ursprüngliche Antwort an

  1. Wählen Sie in der API Management-Dienstinstanz APIs aus.
  2. Wählen Sie in der API-Liste Swagger Petstore aus.
  3. Wählen Sie oben auf der Seite die Registerkarte Testen aus.
  4. 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:

Screenshot: Ursprüngliche API-Antwort im Portal

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.

  1. Wählen Sie Swagger Petstore>Entwerfen>Alle Vorgänge aus.

  2. Klicken Sie im Abschnitt Ausgehende Verarbeitung auf Richtlinie hinzufügen.

    Screenshot: Navigation zur Richtlinie für ausgehenden Datenverkehr im Portal

  3. Wählen Sie im Fenster Ausgehende Richtlinie hinzufügen die Option Header festlegen aus.

    Screenshot: Konfigurieren der Richtlinie zum Festlegen von Headern im Portal

  4. Gehen Sie zum Konfigurieren der Richtlinie zum Festlegen von Headern wie folgt vor:

    1. Geben Sie unter Name den Begriff Custom ein.
    2. Wählen Sie unter Wert die Option + Wert hinzufügen aus. Geben Sie My custom value ein.
    3. Wählen Sie Speichern.
  5. Nach der Konfiguration wird ein set-header-Richtlinienelemente im Abschnitt Ausgehende Verarbeitung angezeigt.

    Screenshot: Richtlinien für ausgehenden Datenverkehr zum Festlegen von Headern im Portal

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.

  1. Wählen Sie Swagger Petstore>Entwerfen>Alle Vorgänge aus.

  2. Wählen Sie im Abschnitt Eingehende Verarbeitung das Code-Editor-Symbol (</>) aus.

    Screenshot: Navigation zum Code-Editor für die Richtlinie für eingehenden Datenverkehr im Portal

  3. 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.

    Screenshot: Auswählen von „Codeausschnitte anzeigen“ im Editor der Richtlinie für eingehenden Datenverkehr im Portal

  4. 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.

    Screenshot: Einfügen einer Richtlinie für Grenzwerte für Aufrufraten pro Schlüssel im Portal

  5. Ä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

  1. Wählen Sie Swagger Petstore>Testen aus.

  2. 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:

    Screenshot des benutzerdefinierten Antwortheaders im Portal

Testen des Aufruflimits (Drosselung)

  1. Wählen Sie Swagger Petstore>Testen aus.

  2. 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.

    Screenshot: „Too Many Requests“ in der Antwort im Portal

  3. 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: