Övning – Ta bort huvudinformation
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.
Logga in på Azure-portalen.
I Aktivitetsfältet i Azure väljer du Cloud Shell-ikonen för att öppna Azure Cloud Shell.
Om du vill klona lagringsplatsen som innehåller källan för vår app kör du följande
git clonekommando i Cloud Shell:git clone https://github.com/MicrosoftDocs/mslearn-protect-apis-on-api-management.gitGå till lagringsplatsmappen lokalt genom att köra följande kommando:
cd mslearn-protect-apis-on-api-managementSom 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.shSkriptet 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.
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
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:
Logga in på Azure-portalen.
I menyn i Azure-portalen eller på sidan Start väljer du Skapa en resurs. Fönstret Skapa en resurs visas.
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.
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.
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.
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:
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.
Under Skapa från definition väljer du OpenAPI. Dialogrutan Skapa från OpenAPI-specifikation visas.
I fältet OpenAPI-specifikation klistrar du in swagger JSON-URL:en som du sparade tidigare i övningen.
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.
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:
I menyn Azure Portal eller på sidan Start väljer du Alla resurser och sedan din API Management-instans.
I det vänstra menyfönstret under API:er väljer du API:er och i mittenfönstret väljer du Census Data.
I den översta menyraden väljer du fliken Test och väljer sedan åtgärden GetLatestCensus .
Välj Skicka.
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:
Välj Census Data igen och välj fliken Design i den översta menyraden.
Välj Alla åtgärder och välj<>i avsnittet Utgående bearbetning. Princip-XML-redigeraren visas.
Ersätt standardtaggen
<outbound>med den här koden:<outbound> <set-header name="x-powered-by" exists-action="delete" /> <base /> </outbound>Välj Spara.
Testa borttagning av huvuden
Nu bör du kunna köra ett test för att visa att huvudena tas bort:
Välj Census Data igen och välj fliken Test i den översta menyraden.
Välj åtgärden GetLatestCensus och välj sedan Skicka.
Rubriken x-powered-by ska inte finnas i HTTP-svaret.