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 por HTTP depois que uma conexão de cliente é estabelecida.

Gorjeta

O Gerenciamento de API também fornece suporte nativo para APIs WebSocket, que mantêm uma conexão única, persistente e bidirecional 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 uma camada de serviço para conexões HTTP de longa execução - o SSE depende de uma conexão HTTP de longa execução que é 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 do protocolo TCP (Transmission Control Protocol) 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 que o Balanceador de Carga do Azure impõe, 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 registar o corpo da solicitação/resposta do Azure Monitor, do Application Insights ou dos Hubs de Eventos - Pode configurar o registo de solicitações da API para o Azure Monitor ou o Application Insights usando definiçõ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, registar o conteúdo do pedido/resposta pode causar buffering inesperado, o que pode causar 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 alterar as definições de APIs individuais conforme necessário. Ao registar informação em Hubs de Eventos, configura-se o escopo e a quantidade de informações de contexto para o registo de pedidos/respostas usando o log-to-eventhubs. Para APIs que implementam SSE, certifique-se de desativar o registo do corpo da 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.