Partilhar via


Encaminhar pedido

APLICA-SE A: Todas as camadas de gerenciamento de API

A forward-request política encaminha a solicitação de entrada para o serviço de back-end especificado no contexto da solicitação. A URL do serviço de back-end é especificada nas configurações da API e pode ser alterada usando a política de serviço de back-end definida.

Importante

  • Esta política é necessária para encaminhar solicitações para um back-end de API. Por padrão, o Gerenciamento de API configura essa política no escopo global.
  • A remoção dessa política faz com que a solicitação não seja encaminhada para o serviço de back-end. As políticas na seção de saída são avaliadas imediatamente após a conclusão bem-sucedida das políticas na seção de entrada.

Nota

Defina os elementos da política e os elementos filho na ordem fornecida na declaração de política. Saiba mais sobre como definir ou editar políticas de Gerenciamento de API.

Declaração de política

<forward-request http-version="1 | 2or1 | 2" timeout="time in seconds (alternatively, use timeout-ms)" | timeout-ms="time in milliseconds (alternatively, use timeout)" continue-timeout="time in seconds" follow-redirects="false | true" buffer-request-body="false | true" buffer-response="true | false" fail-on-error-status-code="false | true"/>

Atributos

Atributo Description Necessário Predefinição
tempo limite A quantidade de tempo, em segundos, para aguardar que os cabeçalhos de resposta HTTP sejam retornados pelo serviço de back-end antes que um erro de tempo limite seja gerado. O valor mínimo é 0 segundos. Valores superiores a 240 segundos podem não ser respeitados, porque a infraestrutura de rede subjacente pode descartar conexões ociosas após esse período. São permitidas expressões de política. Você pode especificar um timeout ou timeout-ms mas não ambos. Não 300
Tempo limite-MS A quantidade de tempo, em milissegundos, para aguardar que os cabeçalhos de resposta HTTP sejam retornados pelo serviço de back-end antes que um erro de tempo limite seja gerado. O valor mínimo é 0 ms. São permitidas expressões de política. Você pode especificar um timeout ou timeout-ms mas não ambos. No N/A
continuar-timeout A quantidade de tempo, em segundos, para aguardar que um 100 Continue código de status seja retornado pelo serviço de back-end antes que um erro de tempo limite seja gerado. São permitidas expressões de política. No N/A
http-versão A versão de especificação HTTP a ser usada ao enviar a resposta HTTP para o serviço de back-end. Ao usar 2or1o , o gateway favorecerá HTTP /2 sobre /1, mas voltará para HTTP /1 se HTTP /2 não funcionar. Não 1
follow-redirecionamentos Especifica se os redirecionamentos do serviço de back-end são seguidos pelo gateway ou retornados ao chamador. São permitidas expressões de política. Não false
buffer-request-body Quando definido como true, a solicitação é armazenada em buffer e será reutilizada na nova tentativa. Não false
tampão-resposta Afeta o processamento de respostas em partes. Quando definido como false, cada parte recebida do back-end é imediatamente devolvida ao chamador. Quando definido como true, os blocos são armazenados em buffer (8 KB, a menos que o fim do fluxo seja detetado) e só então retornam ao chamador.

Defina como false com back-ends, como aqueles que implementam eventos enviados pelo servidor (SSE) que exigem que o conteúdo seja retornado ou transmitido imediatamente para o chamador. Expressões de política não são permitidas.
Não true
código fail-on-error-status-code Quando definido como true, aciona a seção on-error para códigos de resposta no intervalo de 400 a 599, inclusive. Expressões de política não são permitidas. Não false

Utilização

Exemplos

Enviar solicitação para back-end HTTP/2

A política de nível de API a seguir encaminha todas as solicitações de API para um serviço de back-end HTTP/2.

<!-- api level -->
<policies>
    <inbound>
        <base/>
    </inbound>
    <backend>
        <forward-request http-version="2or1"/>
    </backend>
    <outbound>
        <base/>
    </outbound>
</policies>

Isso é necessário para cargas de trabalho HTTP /2 ou gRPC e, atualmente, só é suportado no gateway auto-hospedado. Saiba mais em nossa visão geral do gateway de API.

Encaminhar solicitação com intervalo de tempo limite

A política de nível de API a seguir encaminha todas as solicitações de API para o serviço de back-end com um intervalo de tempo limite de 60 segundos.

<!-- api level -->
<policies>
    <inbound>
        <base/>
    </inbound>
    <backend>
        <forward-request timeout="60"/>
    </backend>
    <outbound>
        <base/>
    </outbound>
</policies>

Herdar a política do escopo pai

Essa política de nível de operação usa o base elemento para herdar a política de back-end do escopo de nível de API pai.

<!-- operation level -->
<policies>
    <inbound>
        <base/>
    </inbound>
    <backend>
        <base/>
    </backend>
    <outbound>
        <base/>
    </outbound>
</policies>

Não herdar a política do escopo pai

Essa política de nível de operação encaminha explicitamente todas as solicitações para o serviço de back-end com um tempo limite de 120 e não herda a política de back-end de nível de API pai. Se o serviço de back-end responder com um código de status de erro de 400 a 599 inclusive, a seção on-error será acionada.

<!-- operation level -->
<policies>
    <inbound>
        <base/>
    </inbound>
    <backend>
        <forward-request timeout="120" fail-on-error-status-code="true" />
        <!-- effective policy. note the absence of <base/> -->
    </backend>
    <outbound>
        <base/>
    </outbound>
</policies>

Não encaminhar solicitações para back-end

Essa política de nível de operação não encaminha solicitações para o serviço de back-end.

<!-- operation level -->
<policies>
    <inbound>
        <base/>
    </inbound>
    <backend>
        <!-- no forwarding to backend -->
    </backend>
    <outbound>
        <base/>
    </outbound>
</policies>

Para obter mais informações sobre como trabalhar com políticas, consulte: