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
Förutsättningar
- Lär dig Azure API Management-terminologin.
- Förstå begreppet principer i Azure API Management.
- Slutför följande snabbstart: Skapa en Azure API Management-instans. I den här självstudien rekommenderar vi att du använder någon av de klassiska nivåerna eller v2-nivåerna, till exempel nivån Developer eller Nivån Basic v2. Förbrukningsnivån stöder inte alla principer som används i den här självstudien.
- Slutför även följande självstudie: Importera och publicera ditt första API.
Gå till API Management-instansen
I Azure-portalen söker du efter och väljer API Management-tjänster.
På sidan API Management-tjänster väljer du din API Management-instans.
Testa det ursprungliga svaret
Visa det ursprungliga svaret:
- I din API Management-tjänstinstans väljer du API:er.
- Välj Swagger Petstore i din API-lista.
- Välj fliken Test överst på skärmen.
- 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:
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.
Välj Swagger Petstore>Design>Alla åtgärder.
I avsnittet Utgående bearbetning väljer du + Lägg till princip.
I fönstret Lägg till utgående princip väljer du Ange rubriker.
Gör följande för att konfigurera principen Ange rubriker:
- Under Namn anger du Anpassad.
- Under Värde väljer du + Lägg till värde. Ange "Mitt anpassade värde".
- Välj Spara.
Efter konfigurationen visas ett principelement för set-header i avsnittet Utgående bearbetning .
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.
Välj Swagger Petstore>Design>Alla åtgärder.
I avsnittet Inkommande bearbetning väljer du kodredigerarens (</>) ikon.
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.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.Ä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
Välj Swagger Petstore>Test.
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:
Testa frekvensgränsen (begränsningen)
Välj Swagger Petstore>Test.
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 .
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: