API-stöd i Azure Static Web Apps med Azure API Management
Azure API Management är en tjänst som gör att du kan skapa en modern API-gateway för befintliga serverdelstjänster.
När du länkar azure API Management-tjänsten till din statiska webbapp skickas alla begäranden till din statiska webbapp med en väg som börjar med /api
till samma väg i Azure API Management-tjänsten.
En Azure API Management-tjänst kan länkas till flera statiska webbappar samtidigt. En API Management-produkt skapas för varje länkad statisk webbapp. Alla API:er som läggs till i produkten är tillgängliga för den associerade statiska webbappen.
Alla prisnivåer för Azure API Management är tillgängliga för användning med Azure Static Web Apps.
API-alternativ för Static Web Apps omfattar följande Azure-tjänster:
Mer information finns i översikten över API:er.
Kommentar
Integreringen med Azure API Management kräver standardplanen för Static Web Apps.
Serverdelsintegrering stöds inte i statiska webbappars pull-begärandemiljöer.
Förutsättningar
Om du vill länka en API-hanteringsinstans till din statiska webbapp måste du ha en befintlig Azure API Management-resurs och en statisk webbapp.
Resurs | Beskrivning |
---|---|
Azure API Management | Om du inte redan har en följer du stegen i instansguiden Skapa en ny Azure API Management-tjänst. |
Befintlig statisk webbapp | Om du inte redan har en följer du stegen i komma igång-guiden för att skapa en statisk webbapp utan ramverk . |
Exempel
Överväg en befintlig Azure API Management-instans som exponerar en slutpunkt via följande plats.
https://my-api-management-instance.azure-api.net/api/getProducts
När du har länkat kan du komma åt samma slutpunkt via api
sökvägen från din statiska webbapp, som du ser i det här exemplets URL.
https://red-sea-123.azurestaticapps.net/api/getProducts
Båda URL:erna pekar på samma API-slutpunkt. Slutpunkten på API Management-instansen måste ha prefixet /api
eftersom Static Web Apps matchar begäranden som görs till /api
och proxyservrar hela sökvägen till den länkade resursen.
Länka en Azure API Management-tjänst
Länka API Management-instansen till Static Web Apps
Följ dessa steg om du vill länka en Azure API Management-tjänst som API-serverdel för en statisk webbapp:
Gå till den statiska webbappen i Azure-portalen.
Välj API:er på navigeringsmenyn.
Leta upp den miljö som du vill länka API Management-tjänsten till. Markera Länk.
I Resurstyp för serverdelen väljer du API Management.
I Prenumeration väljer du den prenumeration som innehåller den Azure API Management-tjänst som du vill länka.
I Resursnamn väljer du Azure API Management-tjänsten.
Markera Länk.
Viktigt!
När länkningsprocessen är klar skickas begäranden till vägar som börjar med /api
till din Azure API Management-tjänst. Inga API:er exponeras dock som standard. Se Konfigurera API:er för att ta emot begäranden om att konfigurera en API Management-produkt för att tillåta de API:er som du vill använda.
Konfigurera API:er för att ta emot begäranden
Azure API Management har en produktfunktion som definierar hur API:er visas. Som en del av länkningsprocessen konfigureras API Management-tjänsten med en produkt med namnet Azure Static Web Apps - <STATIC_WEB_APP_AUTO_GENERATED_HOSTNAME> (Linked)
.
Om du vill göra API:er tillgängliga för din länkade statiska webbapp lägger du till dem i produkten.
I API Management-instansen i portalen väljer du fliken Produkter .
Azure Static Web Apps - <STATIC_WEB_APP_AUTO_GENERATED_HOSTNAME> (Linked)
Välj produkten.Välj + Lägg till API.
Välj de API:er som du vill exponera från dina Static Web Apps och välj sedan länken Välj .
Länkningsprocessen tillämpar också automatiskt följande konfiguration på API Management-tjänsten:
- Den produkt som är associerad med den länkade statiska webbappen är konfigurerad för att kräva en prenumeration.
- En API Management-prenumeration med namnet
Generated for Static Web Apps resource with default hostname: <STATIC_WEB_APP_AUTO_GENERATED_HOSTNAME>
skapas och begränsas till produkten med samma namn. - En princip för inkommande validering och jwt läggs till i produkten för att endast tillåta begäranden som innehåller en giltig åtkomsttoken från den länkade statiska webbappen.
- Den länkade statiska webbappen är konfigurerad för att inkludera prenumerationens primära nyckel och en giltig åtkomsttoken vid proxybegäranden till API Management-tjänsten.
Viktigt!
Om du ändrar principen validate-jwt eller återskapar prenumerationens primärnyckel förhindrar du att din statiska webbapp proxysöker till API Management-tjänsten. Ändra eller ta inte bort den prenumeration eller produkt som är associerad med din statiska webbapp när de är länkade.
Ta bort länken till en Azure API Management-tjänst
Så här avlänkar du en Azure API Management-tjänst från en statisk webbapp:
Gå till den statiska webbappen i Azure-portalen.
Leta upp den miljö som du vill ta bort länken till och välj namnet på API Management-tjänsten.
Välj Ta bort länk.
När avlänkningsprocessen är klar skickas inte längre begäranden till vägar som börjar med /api/
till DIN API Management-tjänst.
Kommentar
Api Management-produkten och prenumerationen som är associerad med den länkade statiska webbappen tas inte bort automatiskt. Du kan ta bort dem från API Management-tjänsten.
Felsökning
Om API:erna inte är associerade med DEN API Management-produkt som skapats för Static Web Apps-resursen returnerar åtkomst till en /api
väg i din statiska webbapp följande fel från API Management.
{
"statusCode": 401,
"message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription."
}
Lös det här felet genom att konfigurera de API:er som du vill exponera i dina Static Web Apps för den produkt som skapats för den, enligt beskrivningen i avsnittet Konfigurera API:er för att ta emot begäranden .