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
- Uma instância de gerenciamento de API existente. Crie um, caso ainda não o tenha feito.
- Uma API que implementa SSE. Importe e publique a API em sua instância de Gerenciamento de API usando um dos métodos de importação suportados.
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
- Saiba mais sobre como configurar políticas no Gerenciamento de API.
- Saiba mais sobre a capacidade de gerenciamento de API.