Dela via


Självstudie: Transformera och skydda ditt API

GÄLLER FÖR: Alla API Management-nivåer

I den här självstudien lär du dig hur du konfigurerar principer för att skydda eller transformera ditt API. Principer är en samling instruktioner som körs sekventiellt på begäran eller svaret från ett API som ändrar API:ets beteende.

Du kanske till exempel vill ange ett anpassat svarshuvud. Du kan också skydda ditt serverdels-API genom att konfigurera en hastighetsbegränsningsprincip så att API:et inte överanvänds av utvecklare. De här exemplen är en enkel introduktion till API Management-principer. Fler principalternativ finns i API Management-principer.

Kommentar

Som standard konfigurerar API Management en global forward-request princip. Principen forward-request krävs för att gatewayen ska kunna slutföra en begäran till en serverdelstjänst.

I den här självstudien lär du dig att:

  • Transformera ett API för att ange ett anpassat svarshuvud
  • Skydda ett API genom att lägga till en hastighetsbegränsningsprincip (begränsning)
  • Testa omvandlingarna

Skärmbild av API Management-principer i portalen.

Förutsättningar

Gå till API Management-instansen

  1. I Azure-portalen söker du efter och väljer API Management-tjänster.

    Välj API Management-tjänster

  2. På sidan API Management-tjänster väljer du din API Management-instans.

    Välj din API Management-instans

Testa det ursprungliga svaret

Visa det ursprungliga svaret:

  1. I din API Management-tjänstinstans väljer du API:er.
  2. Välj Swagger Petstore i din API-lista.
  3. Välj fliken Test överst på skärmen.
  4. Välj åtgärden GET Finds pets by status (GET Söker efter husdjur efter status) och välj ett annat värde för statusen Frågeparameter. Välj Skicka.

Det ursprungliga API-svaret bör se ut ungefär så här:

Skärmbild av det ursprungliga API-svaret i portalen.

Transformera ett API för att lägga till ett anpassat svarshuvud

API Management innehåller flera transformeringsprinciper som du kan använda för att ändra nyttolaster för begäran eller svar, rubriker eller statuskoder. I det här exemplet anger du ett anpassat svarshuvud i API-svaret.

Ange en transformationsprincip

Det här avsnittet visar hur du konfigurerar ett anpassat svarshuvud med hjälp av set-header principen. Här använder du en formulärbaserad principredigerare som förenklar principkonfigurationen.

  1. Välj Swagger Petstore>Design>Alla åtgärder.

  2. I avsnittet Utgående bearbetning väljer du + Lägg till princip.

    Skärmbild av hur du navigerar till en utgående princip i portalen.

  3. I fönstret Lägg till utgående princip väljer du Ange rubriker.

    Skärmbild av hur du konfigurerar principen Ange rubriker i portalen.

  4. Gör följande för att konfigurera principen Ange rubriker:

    1. Under Namn anger du Anpassad.
    2. Under Värde väljer du + Lägg till värde. Ange "Mitt anpassade värde".
    3. Välj Spara.
  5. Efter konfigurationen visas ett principelement för set-header i avsnittet Utgående bearbetning .

    Skärmbild av utgående principer för Ange huvuden i portalen.

Skydda ett API genom att lägga till en princip för frekvensbegränsningar (begränsning)

Det här avsnittet visar hur du lägger till skydd i serverdels-API:et genom att konfigurera hastighetsgränser så att API:et inte överanvänds av utvecklare. Det här exemplet visar hur du konfigurerar rate-limit-by-key principen med hjälp av kodredigeraren. I det här exemplet är gränsen inställd på tre anrop per 15 sekunder. Efter 15 sekunder kan en utvecklare försöka att anropa API:et igen.

Kommentar

Den här principen stöds inte på förbrukningsnivån.

  1. Välj Swagger Petstore>Design>Alla åtgärder.

  2. I avsnittet Inkommande bearbetning väljer du kodredigerarens (</>) ikon.

    Skärmbild av hur du navigerar till redigeraren för inkommande principkod i portalen.

  3. Placera markören inuti elementet <inbound> på en tom rad. Välj sedan Visa kodfragment i det övre högra hörnet på skärmen.

    Skärmbild av att välja visa kodfragment i redigeraren för inkommande principer i portalen.

  4. I det högra fönstret går du till Principer för åtkomstbegränsning och väljer Begränsa anropsfrekvens per nyckel.

    Elementet <rate-limit-by-key /> läggs till vid markören.

    Skärmbild av hur du infogar gräns för anropsfrekvens per nyckelprincip i portalen.

  5. Ändra koden <rate-limit-by-key /> i elementet <inbound> till följande kod. Välj sedan Spara.

    <rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
    

Testa omvandlingarna

Om du nu tittar på koden i kodredigeraren ser dina principer ut som följande kod:

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

I resten av det här avsnittet testas principtransformationer som du anger i den här övningen.

Testa det anpassade svarshuvudet

  1. Välj Swagger Petstore>Test.

  2. Välj åtgärden GET Finds pets by status (GET Söker efter husdjur efter status) och välj ett annat värde för statusen Frågeparameter. Välj Skicka.

    Som du ser läggs det anpassade svarshuvudet till:

    Skärmbild som visar anpassat svarshuvud i portalen.

Testa frekvensgränsen (begränsningen)

  1. Välj Swagger Petstore>Test.

  2. Välj åtgärden GET Finds Pets by Status (GET Finds Pets by Status). Välj Skicka flera gånger i rad.

    När du har skickat för många begäranden under den konfigurerade perioden får du svaret 429 för många begäranden .

    Skärmbild som visar för många begäranden i svaret i portalen.

  3. Vänta i 15 sekunder eller mer och välj sedan Skicka igen. Den här gången bör få svaret 200 OK.

Sammanfattning

I den här självstudiekursen lärde du dig att:

  • Transformera ett API för att ange ett anpassat svarshuvud
  • Skydda ett API genom att lägga till en hastighetsbegränsningsprincip (begränsning)
  • Testa omvandlingarna

Nästa steg

Gå vidare till nästa kurs: