Övning – Ta bort huvudinformation

Slutförd

Företag som publicerar webb-API:er behöver ofta noggrant kontrollera de HTTP-huvuden som deras API:er returnerar, helst utan att behöva skriva om API-källkoden.

Regeringen beslutar att dela censusdata med sina byråer via RESTful-API:er. De kritiska kraven är att data ska delas på ett säkert sätt och enkelt kunna ändras för att medge snabb integrering. Som ansvarig utvecklare måste du skapa en API-gateway. Du använder gatewayen för att publicera ett RESTful Census-API som exponerar en OpenAPI-slutpunkt med hjälp av moderna säkerhetsstandarder.

Här gör du följande:

  • Publicerar ett RESTful-census-API.
  • Distribuerar en API Management-gateway.
  • Tillgängliggör census-API:et via gatewayslutpunkten.
  • Ta bort en rubrik från svaret.

Viktigt!

Du behöver en egen Azure-prenumeration för att slutföra den här övningen och du kan debiteras. Om du inte redan har en Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.

Distribuera censuswebb-API:et

Du har utvecklat en .NET Core-app som returnerar känslig censusinformation. Appen innehåller Swashbuckle för att skapa OpenAPI-dokumentation.

I syfte att spara tid börjar vi med att köra ett skript för hantering av RESTful-API:t i Azure. Skriptet utför följande steg:

  • Det skapar en Azure App Service-plan på den kostnadsfria nivån.
  • Det skapar ett webb-API i en Azure App Service som är konfigurerad för Git-distribution från en lokal lagringsplats.
  • Det anger autentiseringsuppgifter på kontonivån för distribution av appen.
  • Det konfigurerar Git lokalt.
  • Den distribuerar vårt webb-API till vår App Service-instans.
  1. Logga in på Azure-portalen.

  2. I Aktivitetsfältet i Azure väljer du Cloud Shell-ikonen för att öppna Azure Cloud Shell.

    Skärmbild av Cloud Shell-ikonen i aktivitetsfältet.

  3. Om du vill klona lagringsplatsen som innehåller källan för vår app kör du följande git clone kommando i Cloud Shell:

    git clone https://github.com/MicrosoftDocs/mslearn-protect-apis-on-api-management.git
    
  4. Gå till lagringsplatsmappen lokalt genom att köra följande kommando:

    cd mslearn-protect-apis-on-api-management
    
  5. Som namnet antyder är setup.sh skriptet du kör för att skapa vårt test-API. Det här skriptet skapar en offentlig webbapp som tillgängliggör ett OpenAPI-gränssnitt:

    bash setup.sh
    

    Skriptet tar ungefär en minut att köra. När skriptet är klart visas två URL:er som du kan använda för att testa appdistributionen. Observera att under distributionen så installeras alla beroenden som behövs för att appen ska köras automatiskt på App Service-fjärrtjänsten.

  6. Om du vill testa att appen har distribuerats korrekt kopierar du och klistrar in den första URL:en från Cloud Shell-utdata i webbläsaren. Webbläsaren bör visa Swagger-gränssnittet för vår app och deklarera följande RESTful-slutpunkter:

    • api/census, som returnerar en census och tillhörande personer
    • api/census/{censusYear}, som returnerar en census och tillhörande personer för det angivna året
    • api/people/{reference}, som returnerar detaljerad information om en enskild person

    Skärmbild av Swagger-sidan för API:et som visar RESTful-slutpunkterna.

  7. Kopiera slutligen den sista URL:en från Cloud Shell-utdata. Den här URL:en är swagger JSON-URL:en som du behöver senare i den här övningen.

Distribuera en API-gateway

Nästa steg i den här övningen är att skapa en API-gateway i Azure-portalen. I nästa avsnitt använder du den här gatewayen för att publicera ditt API:

  1. Logga in på Azure-portalen.

  2. I menyn i Azure-portalen eller på sidan Start väljer du Skapa en resurs. Fönstret Skapa en resurs visas.

  3. I det vänstra menyfönstret väljer du Integrering och anger sedan API Management i sökrutan tjänsten Search s och Marketplace. Välj kortet API Management i resultatet och välj Skapa. Ett fönster med titeln Create API Management service (Skapa API Management-tjänst ) visas.

  4. På fliken Grundläggande anger du följande värden för varje inställning.

    Inställning Värde
    Projektinformation
    Prenumeration Välj din prenumeration
    Resursgrupp Välj en ny eller befintlig resursgrupp. En resursgrupp är en logisk container som innehåller relaterade resurser för en Azure-lösning.
    Instansinformation
    Region Välj en tillgänglig region.
    Resursnamn Ange apim-CensusData<random number>. Ersätt <random number> med din egen serie med tal så att namnet är globalt unikt.
    Organisationsnamn Ange Government-Census. Namnet på din organisation för användning i utvecklarportalen och e-postmeddelanden. (Utvecklarportalen och meddelanden är inte tillgängliga på alla tjänstnivåer.)
    E-postadress för administratör E-postadressen för att ta emot alla systemaviseringar.
    Prisnivå
    Prisnivå Välj Consumption (99.95% SLA) i listrutan.

    Skärmbild av de slutförda inställningarna på fliken Grundläggande på skärmen Skapa API Management-tjänst.

    Kommentar

    Förbrukningsnivån ger snabb distribution för testning och har en prismodell för att betala för användning. Den övergripande API-hanteringsupplevelsen liknar de andra prisnivåerna.

  5. Välj Granska + skapa. När valideringen har slutförts väljer du Skapa. Distributionen kan ta flera minuter. När distributionen är klar visas API Management-instansen i dina Azure-resurser. Välj Gå till resurs för att visa fönstret för API Management-tjänsten.

Importera API:t

Importera nu census-API:et till API Management-gatewayen:

  1. I det vänstra menyfönstret i DIN API Management-instans går du till API:er, väljer API:er och sedan + Lägg till API.

  2. Under Skapa från definition väljer du OpenAPI. Dialogrutan Skapa från OpenAPI-specifikation visas.

  3. I fältet OpenAPI-specifikation klistrar du in swagger JSON-URL:en som du sparade tidigare i övningen.

    Skärmbild av dialogrutan Skapa från OpenAPI-specifikation med swagger JSON-URL:en angiven.

    Kommentar

    Observera att när du tabbar ut ur rutan fylls vissa andra fält i åt dig. OpenAPI-specifikationen fyller i de flesta nödvändiga anslutningsinformation.

  4. Lämna de andra inställningarna som standard och välj sedan Skapa.

Testa API:et

Nu ska vi se vilka data som returneras från API:et som standard:

  1. I menyn Azure Portal eller på sidan Start väljer du Alla resurser och sedan din API Management-instans.

  2. I det vänstra menyfönstret under API:er väljer du API:er och i mittenfönstret väljer du Census Data.

  3. I den översta menyraden väljer du fliken Test och väljer sedan åtgärden GetLatestCensus .

  4. Välj Skicka.

    Skärmbild av testresultaten för åtgärden GetLatestCensus som visar standardinnehållet svar.

  5. Observera att x-powered-by visas i svaret och visar att ramverket är ASP.NET.

Ta bort huvuden

Nu lägger vi till en princip för att ta bort x-powered-by-huvudet från svar som skickas av API:et:

  1. Välj Census Data igen och välj fliken Design i den översta menyraden.

  2. Välj Alla åtgärder och välj<>i avsnittet Utgående bearbetning. Princip-XML-redigeraren visas.

    Skärmbild av fliken Design med ikonen Principer markerad i avsnittet Utgående bearbetning.

  3. Ersätt standardtaggen <outbound> med den här koden:

    <outbound>
       <set-header name="x-powered-by" exists-action="delete" />
       <base />
    </outbound>
    
  4. Välj Spara.

Testa borttagning av huvuden

Nu bör du kunna köra ett test för att visa att huvudena tas bort:

  1. Välj Census Data igen och välj fliken Test i den översta menyraden.

  2. Välj åtgärden GetLatestCensus och välj sedan Skicka.

    Skärmbild av testresultaten för åtgärden GetLatestCensus som visar rubrikerna som tagits bort i svaret.

  3. Rubriken x-powered-by ska inte finnas i HTTP-svaret.