Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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
- 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 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-requestbuffer 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-contenttambé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.
Conteúdo relacionado
- Saiba mais sobre como configurar políticas no Gerenciamento de API.
- Saiba mais sobre a capacidade de gerenciamento de API.