Övning – Lägg till en annan Azure Functions-app i ett befintligt API
Kom ihåg att du vill integrera alla separata mikrotjänster, som är Azure Functions, i ett enda API. Du har lagt till funktionsappen Produkter i en ny instans av API Management. Nu vill du lägga till en annan funktionsapp till api:et.
I den här övningen lägger du till funktionsappen Beställningar i API:et curl och använder verktyget för att testa det integrerade systemet.
Testa funktionen OrderDetails
Innan vi lägger till funktionsappen Beställningar i API:et ska vi testa funktionen som den är värd för – OrderDetails.
- På Azure-resursmenyn eller på sidan Start väljer du Alla resurser. Fönstret Alla resurser visas. 
- Sortera resurserna efter typ och välj sedan den funktionsapp vars namn börjar med OrderFunction. Fönstret Översikt för funktionsappen OrderFunction visas. 
- I listan över funktioner för funktionsappen väljer du OrderDetails. Fönstret Översikt över funktionen OrderDetails visas. 
- I Orderuppgifter visar rutan Kod + test innehållet i - function.jsonfilen. I kommandofältet väljer du Test/Kör. Fliken Indataparametrar för funktionen OrderDetails visas.  
- I fältet HTTP-metod väljer du GET i listrutan. Under Fråga i fältet Namn anger du namn. I fältet Värde anger du Chiba (värdet är skiftlägeskänsligt) och väljer sedan Kör. 
- En loggkonsol öppnas och visar status för begäran. Fliken Utdata visar HTTP-svarskoden och innehållet i JSON-format.   - Du kan också köra fler begäranden med hjälp av namnvärdena Henri och Barriclough för att hämta olika kundbeställningar. 
- Välj Stäng för att stänga flikarna Indatautdata för Test/Kör. 
- I kommandofältet i fönstret OrderDetails väljer du Hämta funktions-URL. Observera att URL:en är namnet på funktionen i den azurewebsites.net domänen. 
Lägga till en funktion i ett befintligt API
I det här steget lägger vi till funktionen Order i API Management-resursen som vi skapade i föregående övning. I den övningen använde vi API Management-gränssnittet inifrån funktionsappens gränssnitt. Här navigerar vi till vår API Management-instans via Azure Portal resursmenyn, bara för att visa att båda metoderna är tillgängliga.
- På Azure-resursmenyn eller på sidan Start väljer du Alla resurser. Fönstret Alla resurser visas. 
- Sortera resurserna efter typ och välj sedan tjänsten OnlineStore API Management. API Management-tjänsten för OnlineStore visas. 
- I menyn, under API:er, välj API:er. I fönstret API:er visas alternativ för att definiera ett nytt API. 
- Under Skapa från Azure-resurs väljer du Funktionsapp.   - Dialogrutan Skapa från funktionsapp visas. 
- Välj Din funktionsapp genom att välja Bläddra. Fönstret Importera Azure Functions visas. 
- I fältet Konfigurera nödvändiga inställningar väljer du Välj.  (.. /media/5-import-azure-function-app-03-expanded.png#lightbox) (.. /media/5-import-azure-function-app-03-expanded.png#lightbox)- Fönstret Välj Azure-funktionsapp visas. 
- Välj din OrderFunction och välj sedan Välj. Fönstret Importera Azure Functions visas igen med din OrderDetails-funktionsapp konfigurerad. 
- Kontrollera att OrderDetails är markerat och välj välj Välj längst ned på sidan för att lägga till funktionen. Dialogrutan Skapa från funktionsapp visas. 
- Ersätt värdet i fältet API URL-suffix med order. Observera hur den här ändringen uppdaterar bas-URL:en. Välj Skapa för att skapa ditt API.   - OnlineStore API Management-tjänsten visar fliken Design med alla tillgängliga API:er (GET, POST) för OrderDetails. 
Testa onlinebutikens beställningsslutpunkt i portalen
Nu när vi har lagt till OrderDetails i vårt API ska vi testa det med hjälp av API Management-verktygen i Azure Portal.
- På fliken Design för OrderFunction-API under Alla operationer väljer du GET OrderDetails och sedan fliken Test. 
- I avsnittet Frågeparametrar väljer du Lägg till parameter och anger namn i fältet NAMN och Chiba och i fältet VÄRDE . Välj Skicka. 
- Fliken HTTP-svarsmeddelande visar http-begäran lyckades (HTTP/1.1/ 200 OK), tillsammans med ett JSON-objekt som visar ett order-ID, tillsammans med kundens namn, totalt pris för ordern och leveransstatus. 
- Rulla upp till avsnittet HTTP-begäran ; Observera att begäran skickades till en underdomän och underkatalog inom azure-api.net domänen. Den här platsen skiljer sig från den azurewebsites.net värddomänen. 
Testa det kombinerade API:et
Vi kan använda kommandoradsverktyget curl för att skicka förfrågningar till vårt API. cURL är perfekt eftersom vi kan inkludera rätt prenumerationsnyckel med en begäran. En begäran behöver också platsen för API:et, som finns i Azure API Management och i det här fallet består av funktionerna Produkter och beställningar.
- I Azure-resursmenyn eller från Start väljer du Alla resurser. 
- Sortera resurser efter typ och välj sedan tjänsten OnlineStore API Management. API Management-tjänsten för OnlineStore visas. 
- I avsnittet Essentials hovrar du över gateway-URL:en och väljer ikonen Kopiera till Urklipp . 
- I Azure Cloud Shell till höger kan du definiera vissa variabler. Kör följande kommando och ersätt - <paste URL here>-platshållaren med URL som du kopierade till urklipp och tryck sedan på Retur. Det här värdet definierar gatewayvariabeln.- GATEWAY_URL=<paste URL here>
- I Azure går du till onlinebutikens API Management-tjänstmeny, rullar ned till API och väljer Prenumerationer. Fönstret Prenumerationer visas för din OnlineStore API Management-instans. 
- För den inbyggda allåtkomstprenumerationen väljer du ellipsen ... längst till höger på raden och väljer sedan Visa/dölj nycklar på snabbmenyn. Den primära nyckeln och den sekundära nyckeln för API:et visas. 
- I fältet Primär nyckel väljer du ikonen Kopiera till Urklipp . 
- Kör följande kommando i Cloud Shell, ersätt platshållaren med värdet i ditt urklipp och tryck sedan på Retur. - SUB_KEY=<paste key here>
- Nu kan vi begära information om en beställning och en produkt genom att fråga samma API Management-tjänst: - Om du vill begära information om en kund med namnet Henri kör du följande kommando i Cloud Shell: - curl -X GET "$GATEWAY_URL/orders/OrderDetails?name=Henri" -H "Ocp-Apim-Subscription-Key:$SUB_KEY"- Svaret innehåller ett JSON-kodblock med orderinformation som visar att Order 56224 levererades till Pascale Henri. Du kan också prova kommandot med namnen Chiba och Barriclough för olika resultat. 
- Om du vill begära information om en produkt med ett ID på 2 kör du följande kommando i Cloud Shell: - curl -X GET "$GATEWAY_URL/products/ProductDetails?id=2" -H "Ocp-Apim-Subscription-Key:$SUB_KEY"- Svaret innehåller ett JSON-kodblock med information om en produkt. Du kan också prova kommandot med ID-värdena1 och 3 för olika resultat. 
 
Observera att båda funktionerna nu kan anropas via slutpunkter inom den azure-api.net domänen (enligt definitionen i GATEWAY_URL), som är den domän som används av Azure API Management. I andra Learn-moduler kan du lära dig hur du tillämpar principer, säkerhetsinställningar, externa cacheminnen och andra funktioner på funktionerna i en API Management Gateway. En gateway ger dig en central kontrollpunkt där du kan hantera flera mikrotjänster utan att ändra deras kod.