Delen via


API configureren voor door de server verzonden gebeurtenissen

VAN TOEPASSING OP: Ontwikkelaar | Basic | Basic v2 | Standaard | Standard v2 | Premium | Premium v2

Dit artikel bevat richtlijnen voor het configureren van een API in API Management waarmee servergestuurde gebeurtenissen (SSE) worden geïmplementeerd. SSE is gebaseerd op de HTML5-standaard EventSource voor het automatisch streamen (pushen) van gegevens naar een client via HTTP nadat een client een verbinding tot stand heeft gebracht.

Tip

API Management biedt ook systeemeigen ondersteuning voor WebSocket-API's, die één permanente, bidrectionele verbinding open houden tussen een client en server.

Vereisten

Richtlijnen voor SSE

Volg deze richtlijnen wanneer u API Management gebruikt om een back-end-API te bereiken die SSE implementeert.

  • Kies de servicelaag voor langlopende HTTP-verbindingen: SSE is afhankelijk van een langlopende HTTP-verbinding die wordt ondersteund in bepaalde API Management-prijscategorieën. Langlopende verbindingen worden ondersteund in de klassieke en v2 API Management-lagen, maar niet in de verbruikslaag.

  • Niet-actieve verbindingen actief houden: als een verbinding tussen de client en de back-end gedurende 4 minuten of langer inactief kan zijn, implementeert u een mechanisme om de verbinding actief te houden. U kunt bijvoorbeeld een TCP-keepalive-signaal inschakelen aan de back-end van de verbinding of verkeer vanaf de clientzijde ten minste één keer per 4 minuten verzenden.

    Deze configuratie is nodig om de time-out voor niet-actieve sessies van 4 minuten te overschrijven die wordt afgedwongen door de Azure Load Balancer, die wordt gebruikt in de API Management-infrastructuur.

  • Relaygebeurtenissen onmiddellijk naar clients : schakel reactiebuffering uit op het forward-request beleid , zodat gebeurtenissen onmiddellijk worden doorgestuurd naar de clients. Voorbeeld:

    <forward-request timeout="120" fail-on-error-status-code="true" buffer-response="false"/>
    
  • Vermijd andere beleidsregels die reacties bufferen: bepaalde beleidsregels, zoals validate-content kunnen ook antwoordinhoud bufferen en mogen niet worden gebruikt met API's die SSE implementeren.

  • Vermijd de aanvraag-/antwoordtekst voor logboekregistratie voor Azure Monitor, Application Insights en Event Hubs : u kunt logboekregistratie van API-aanvragen configureren voor Azure Monitor of Application Insights met behulp van diagnostische instellingen. Met de diagnostische instellingen kunt u de aanvraag-/antwoordtekst registreren in verschillende fasen van de uitvoering van de aanvraag. Voor API's die SSE implementeren, kan dit onverwachte buffering veroorzaken die tot problemen kan leiden. Diagnostische instellingen voor Azure Monitor en Application Insights die zijn geconfigureerd op het globale/alle API-bereik, zijn van toepassing op alle API's in de service. U kunt de instellingen voor afzonderlijke API's zo nodig overschrijven. Wanneer u zich aanmeldt bij Event Hubs, configureert u het bereik en de hoeveelheid contextinformatie voor logboekregistratie van aanvragen/antwoorden met behulp van de logboek-naar-eventhubs. Voor API's die SSE implementeren, moet u ervoor zorgen dat u de logboekregistratie van aanvraag-/antwoordteksten hebt uitgeschakeld voor Azure Monitor, Application Insights en Event Hubs.

  • Reactiecaching uitschakelen: om ervoor te zorgen dat meldingen aan de client tijdig zijn, controleert u of de cache van antwoorden niet is ingeschakeld. Zie API Management-cachebeleidsregels voor meer informatie.

  • Test-API onder belasting : volg algemene procedures om uw API onder belasting te testen om prestatie- of configuratieproblemen te detecteren voordat u in productie gaat.

Volgende stappen