Import rozhraní WEBSocket API

PLATÍ PRO: Vývojář | Základní | Basic v2 | Standardní | Standard v2 | Premium

S využitím řešení API WebSocket API služby API Management můžou vydavatelé rozhraní API rychle přidat rozhraní API WebSocket ve službě API Management prostřednictvím webu Azure Portal, Azure CLI, Azure PowerShellu a dalších nástrojů Azure.

Rozhraní API protokolu WebSocket můžete zabezpečit použitím existujících zásad řízení přístupu, jako je ověřování JWT. Rozhraní API protokolu WebSocket můžete také otestovat pomocí testovacích konzol rozhraní API na webu Azure Portal i na portálu pro vývojáře. Služba API Management na základě existujících možností pozorovatelnosti poskytuje metriky a protokoly pro monitorování a řešení potíží s rozhraními API protokolu WebSocket.

V tomto článku provedete následující:

  • Seznamte se s tokem průchodu protokolu Websocket.
  • Přidejte do instance služby API Management rozhraní API WebSocket.
  • Otestujte rozhraní API protokolu WebSocket.
  • Prohlédněte si metriky a protokoly pro rozhraní WebSocket API.
  • Přečtěte si o omezeních rozhraní WEBSocket API.

Požadavky

Průchod protokolu WebSocket

API Management podporuje předávání Protokolu WebSocket.

Vizuální ilustrace toku průchodu WebSocket

Během průchodu protokolu WebSocket klientská aplikace vytvoří připojení WebSocket s bránou API Management, která pak vytvoří připojení s odpovídajícími back-endovými službami. SLUŽBA API Management pak proxy serverem odesílá zprávy klienta-serveru WebSocket.

  1. Klientská aplikace odešle požadavek metody handshake protokolu WebSocket do brány APIM, která vyvolá operaci onHandshake.
  2. Brána APIM odešle požadavek metody handshake protokolu WebSocket do odpovídající back-endové služby.
  3. Back-endová služba upgraduje připojení na WebSocket.
  4. Brána APIM upgraduje odpovídající připojení k WebSocketu.
  5. Po navázání páru připojení zprostředkuje služba APIM zprávy mezi klientskou aplikací a back-endovou službou.
  6. Klientská aplikace odesílá zprávu do brány APIM.
  7. Brána APIM předá zprávu back-endové službě.
  8. Back-endová služba odešle zprávu do brány APIM.
  9. Brána APIM předá zprávu klientské aplikaci.
  10. Když se obě strany odpojí, rozhraní APIM ukončí odpovídající připojení.

Poznámka:

Připojení na straně klienta a back-endu se skládají z mapování 1:1.

onHandshake – operace

Na protokol WebSocket, když se klientská aplikace pokusí navázat připojení WebSocket s back-endovou službou, nejprve odešle žádost o otevření metody handshake. Každé rozhraní API protokolu WebSocket ve službě API Management má operaci onHandshake. onHandshake je neměnná, neměnitelná, automaticky vytvořená systémová operace. Operace onHandshake umožňuje vydavatelům rozhraní API zachytit tyto požadavky metodou handshake a použít na ně zásady služby API Management.

Příklad obrazovky onHandshake

Přidání rozhraní WEBSocket API

    1. Na webu Azure Portal přejděte k vaší instanci služby API Management.
  1. V nabídce vlevo vyberte rozhraní API> + Přidat rozhraní API.

  2. V části Definovat nové rozhraní API vyberte WebSocket.

  3. V dialogovém okně vyberte Úplné a vyplňte požadovaná pole formuláře.

    Pole Description
    Zobrazovaný název Název, podle kterého se zobrazí rozhraní API protokolu WebSocket.
    Název Nezpracovaný název rozhraní WEBSocket API Při zadávání zobrazovaného názvu se automaticky vyplní.
    WebSocket URL Základní adresa URL s názvem websocket. Příklad: ws://example.com/your-socket-name
    Schéma URL Přijměte výchozí hodnotu.
    Přípona adresy URL rozhraní API Přidejte příponu ADRESY URL pro identifikaci tohoto konkrétního rozhraní API v této instanci služby API Management. Musí být v této instanci APIM jedinečná.
    Produkty Přidružte rozhraní WebSocket API k produktu k jeho publikování.
    Brány Přidružte rozhraní WebSocket API k existujícím branám.
  4. Klikněte na Vytvořit.

Testování rozhraní WEBSocket API

  1. Přejděte k rozhraní WEBSocket API.

  2. V rozhraní API WebSocket vyberte operaci onHandshake.

  3. Vyberte kartu Test pro přístup ke konzole test.

  4. Volitelně můžete zadat parametry řetězce dotazu požadované pro metodu handshake protokolu WebSocket.

    Příklad testovacího rozhraní API

  5. Klepněte na tlačítko Připojit.

  6. Zobrazení stavu připojení ve výstupu

  7. Zadejte hodnotu do datové části.

  8. Klepněte na tlačítko Odeslat.

  9. Zobrazení přijatých zpráv ve výstupu

  10. Opakováním předchozích kroků otestujte různé datové části.

  11. Po dokončení testování vyberte Odpojit.

Zobrazení metrik a protokolů

K monitorování rozhraní API WebSocket API použijte standardní funkce SLUŽBY API služby Api management a Azure Monitor:

  • Zobrazení metrik rozhraní API ve službě Azure Monitor
  • Volitelně můžete povolit nastavení diagnostiky ke shromažďování a zobrazení protokolů brány služby API Management, které zahrnují operace rozhraní API WebSocket.

Například následující snímek obrazovky ukazuje nedávné odpovědi rozhraní WebSocket API s kódem 101 z tabulky ApiManagementGatewayLogs . Tyto výsledky označují úspěšné přepnutí požadavků z protokolu TCP na protokol WebSocket.

Dotazování protokolů pro požadavky rozhraní WEBSocket API

Omezení

Níže najdete aktuální omezení podpory protokolu WebSocket ve službě API Management:

  • Rozhraní API protokolu WebSocket se zatím ve vrstvě Consumption nepodporují.
  • Rozhraní API protokolu WebSocket podporují následující platné typy vyrovnávací paměti pro zprávy: Close, BinaryFragment, BinaryMessage, UTF8Fragment a UTF8Message.
  • V současné době zásady set-header nepodporují změnu určitých dobře známých hlaviček, včetně Host hlaviček, v požadavcích onHandshake.
  • Během metody handshake protokolu TLS s back-endem Protokolu WebSocket služba API Management ověří, jestli je certifikát serveru důvěryhodný a že jeho název subjektu odpovídá názvu hostitele. Pomocí rozhraní HTTP API služba API ověří, že certifikát je důvěryhodný, ale neověřuje, že název hostitele a předmět odpovídají.

Omezení připojení WebSocket najdete v tématu Omezení služby API Management.

Nepodporované zásady

Následující zásady nejsou podporovány a nelze je použít pro operaci onHandshake:

  • Napodobení odpovědi
  • Získání z mezipaměti
  • Uložit do mezipaměti
  • Povolit volání mezi doménou
  • CORS
  • JSONP
  • Nastavení metody požadavku
  • Set body (Nastavit text)
  • Convert XML to JSON (Převést XML na JSON)
  • Convert JSON to XML (Převést JSON na XML)
  • Transformace XML pomocí XSLT
  • Ověření obsahu
  • Ověření parametrů
  • Ověření hlaviček
  • Ověření stavových kódů

Poznámka:

Pokud jste zásady použili ve vyšších oborech (tj. v globálním oboru nebo produktu) a zdědili je prostřednictvím zásad rozhraní API webSocketu, přeskočí se za běhu.

Další kroky