Sdílet prostřednictvím


Podpora rozhraní API ve službě Azure Static Web Apps se službou Azure API Management

Azure API Management je služba, která umožňuje vytvořit moderní bránu rozhraní API pro stávající back-endové služby.

Když propojíte službu Azure API Management se statickou webovou aplikací, všechny požadavky na vaši statickou webovou aplikaci se trasou, která začíná /api , se přesměrují na stejnou trasu ve službě Azure API Management.

Službu Azure API Management je možné propojit s několika statickými webovými aplikacemi najednou. Pro každou propojenou statickou webovou aplikaci se vytvoří produkt API Management. Všechna rozhraní API přidaná do produktu jsou dostupná pro přidruženou statickou webovou aplikaci.

Všechny cenové úrovně služby Azure API Management jsou k dispozici pro použití se službou Azure Static Web Apps.

Mezi možnosti rozhraní API pro Static Web Apps patří následující služby Azure:

Další informace najdete v přehledu rozhraní API.

Poznámka:

Integrace se službou Azure API Management vyžaduje plán Static Web Apps Standard.

Integrace back-endu není podporována v prostředích statických žádostí o přijetí změn Web Apps.

Předpoklady

Pokud chcete propojit instanci služby API Management se statickou webovou aplikací, musíte mít existující prostředek služby Azure API Management a statickou webovou aplikaci.

Prostředek Popis
Azure API Management Pokud ho ještě nemáte, postupujte podle pokynů v průvodci vytvořením nové instance služby Azure API Management.
Existující statická webová aplikace Pokud ho ještě nemáte, vytvořte statickou webovou aplikaci No Framework podle pokynů v úvodní příručce.

Příklad

Představte si existující instanci služby Azure API Management, která zveřejňuje koncový bod prostřednictvím následujícího umístění.

https://my-api-management-instance.azure-api.net/api/getProducts

Po propojení můžete ke stejnému api koncovému bodu přistupovat přes cestu z vaší statické webové aplikace, jak je znázorněno v této ukázkové adrese URL.

https://red-sea-123.azurestaticapps.net/api/getProducts

Obě adresy URL odkazují na stejný koncový bod rozhraní API. Koncový bod v instanci služby API Management musí mít předponu /api , protože Static Web Apps odpovídá žádostem provedeným na /api proxy serveru a k celé cestě k propojenému prostředku.

Pokud chcete propojit službu Azure API Management jako back-end rozhraní API pro statickou webovou aplikaci, postupujte takto:

  1. Na webu Azure Portal přejděte do statické webové aplikace.

  2. V navigační nabídce vyberte rozhraní API .

  3. Vyhledejte prostředí, se které chcete propojit se službou API Management. Vyberte odkaz.

  4. V back-endovém typu prostředku vyberte API Management.

  5. V předplatném vyberte předplatné obsahující službu Azure API Management, kterou chcete propojit.

  6. V názvu prostředku vyberte službu Azure API Management.

  7. Vyberte odkaz.

Důležité

Po dokončení procesu propojení se požadavky na trasy začínající /api na vaši službu Azure API Management přepojí. Ve výchozím nastavení se ale žádná rozhraní API nezořejní. Viz Konfigurace rozhraní API pro příjem požadavků na konfiguraci produktu API Management tak, aby umožňovala rozhraní API, která chcete použít.

Konfigurace rozhraní API pro příjem požadavků

Azure API Management má funkci produktů , která definuje, jak se rozhraní API zobrazují. V rámci procesu propojování se služba API Management konfiguruje s názvem produktu Azure Static Web Apps - <STATIC_WEB_APP_AUTO_GENERATED_HOSTNAME> (Linked).

Pokud chcete, aby rozhraní API byla dostupná pro vaši propojenou statickou webovou aplikaci, přidejte je do produktu.

  1. V instanci služby API Management na portálu vyberte kartu Produkty .

  2. Azure Static Web Apps - <STATIC_WEB_APP_AUTO_GENERATED_HOSTNAME> (Linked) Vyberte produkt.

  3. Vyberte + Přidat rozhraní API.

  4. Vyberte rozhraní API, která chcete zveřejnit ze statických webových aplikací, a pak vyberte odkaz Vybrat .

Screenshot of the API Management Products API blade in the Azure portal, showing how to add an API to the product created for the Static Web Apps resource.

Proces propojení také automaticky použije následující konfiguraci pro vaši službu API Management:

  • Produkt přidružený k propojené statické webové aplikaci je nakonfigurovaný tak, aby vyžadoval předplatné.
  • Vytvoří se předplatné služby API Management s názvem Generated for Static Web Apps resource with default hostname: <STATIC_WEB_APP_AUTO_GENERATED_HOSTNAME> a bude vymezeno na produkt se stejným názvem.
  • Do produktu se přidá příchozí zásada validate-jwt, která povolí pouze požadavky, které obsahují platný přístupový token z propojené statické webové aplikace.
  • Propojená statická webová aplikace je nakonfigurovaná tak, aby zahrnovala primární klíč předplatného a platný přístupový token při proxy požadavcích na službu API Management.

Důležité

Změna zásad validate-jwt nebo opětovné vygenerování primárního klíče předplatného zabrání vaší statické webové aplikaci v proxy požadavcích na službu API Management. Při propojení neupravujte ani neodstraňujte předplatné ani produkt přidružený k vaší statické webové aplikaci.

Pokud chcete zrušit propojení služby Azure API Management ze statické webové aplikace, postupujte takto:

  1. Na webu Azure Portal přejděte do statické webové aplikace.

  2. Vyhledejte prostředí, které chcete odpojit, a vyberte název služby API Management.

  3. Vyberte Zrušit propojení.

Po dokončení procesu zrušení propojení se požadavky na trasy začínající na /api/ vaši službu API Management už nepřesouvají.

Poznámka:

Produkt a předplatné služby API Management přidružené k propojené statické webové aplikaci se automaticky neodstraní. Můžete je odstranit ze služby API Management.

Řešení problému

Pokud rozhraní API nejsou přidružená k produktu API Management vytvořenému pro prostředek Static Web Apps, vrátí přístup ke /api trase ve vaší statické webové aplikaci následující chybu ze služby API Management.

{
  "statusCode": 401,
  "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription."
}

Pokud chcete tuto chybu vyřešit, nakonfigurujte rozhraní API, která chcete zveřejnit ve službě Static Web Apps pro produkt vytvořený pro ni, jak je podrobně popsáno v části Konfigurace rozhraní API pro příjem požadavků .

Další kroky