Partilhar via


Configurar a API para eventos enviados pelo servidor

APLICA-SE A: Developer | Básico | Básico v2 | Padrão | Padrão v2 | Prémio | Premium v2

Este artigo fornece diretrizes para configurar uma API no Gerenciamento de API que implementa eventos enviados pelo servidor (SSE). O SSE é baseado no padrão HTML5 EventSource para streaming (pushing) de dados automaticamente para um cliente via HTTP depois que um cliente estabeleceu uma conexão.

Gorjeta

O Gerenciamento de API também fornece suporte nativo para APIs WebSocket, que mantêm uma conexão única, persistente e bidreccional aberta entre um cliente e um servidor.

Pré-requisitos

Diretrizes para a economia social e solidária

Siga estas diretrizes ao usar o Gerenciamento de API para alcançar uma API de back-end que implemente o SSE.

  • Escolha a camada de serviço para conexões HTTP de longa execução - o SSE depende de uma conexão HTTP de longa execução suportada em determinadas camadas de preços do Gerenciamento de API. Há suporte para conexões de longa duração nas camadas de Gerenciamento de API clássica e v2, mas não na camada de Consumo.

  • Mantenha as conexões ociosas ativas - Se uma conexão entre o cliente e o back-end puder ficar ociosa por 4 minutos ou mais, implemente um mecanismo para manter a conexão ativa. Por exemplo, habilite um sinal keepalive TCP no back-end da conexão ou envie tráfego do lado do cliente pelo menos uma vez a cada 4 minutos.

    Essa configuração é necessária para substituir o tempo limite de sessão ociosa de 4 minutos imposto pelo Balanceador de Carga do Azure, que é usado na infraestrutura de Gerenciamento de API.

  • Retransmitir eventos imediatamente aos clientes - Desative o forward-request buffer de resposta na política para que os eventos sejam imediatamente retransmitidos aos clientes. Por exemplo:

    <forward-request timeout="120" fail-on-error-status-code="true" buffer-response="false"/>
    
  • Evite outras políticas que armazenam respostas em buffer - Certas políticas, como as que validate-content também podem armazenar em buffer o conteúdo da resposta, não devem ser usadas com APIs que implementam SSE.

  • Evite registrar o corpo da solicitação/resposta para o Azure Monitor, Application Insights e Hubs de Eventos - Você pode configurar o log de solicitações de API para o Azure Monitor ou o Application Insights usando configurações de diagnóstico. As configurações de diagnóstico permitem registrar o corpo da solicitação/resposta em vários estágios da execução da solicitação. Para APIs que implementam SSE, isso pode causar buffering inesperado que pode levar a problemas. As configurações de diagnóstico para o Azure Monitor e o Application Insights configuradas no escopo global/Todas as APIs aplicam-se a todas as APIs no serviço. Você pode substituir as configurações de APIs individuais conforme necessário. Ao registrar em Hubs de Eventos, você configura o escopo e a quantidade de informações de contexto para o log de solicitação/resposta usando o log para hubs de eventos. Para APIs que implementam SSE, certifique-se de ter desabilitado o log do corpo de solicitação/resposta para o Azure Monitor, Application Insights e Hubs de Eventos.

  • Desabilitar o cache de resposta - Para garantir que as notificações ao cliente sejam oportunas, verifique se o cache de resposta não está habilitado. Para obter mais informações, consulte Políticas de cache de gerenciamento de API.

  • Testar API sob carga - Siga as práticas gerais para testar sua API sob carga para detetar problemas de desempenho ou configuração antes de entrar em produção.

Próximos passos