Vidarebefordra begäran

GÄLLER FÖR: Alla API Management-nivåer

Principen forward-request vidarebefordrar den inkommande begäran till den serverdelstjänst som anges i begärandekontexten. Url:en för serverdelstjänsten anges i API-inställningarna och kan ändras med hjälp av den inställda serverdelstjänstprincipen.

Viktigt!

  • Den här principen krävs för att vidarebefordra begäranden till en API-serverdel. Som standard konfigurerar API Management den här principen i det globala omfånget.
  • Om du tar bort den här principen kommer begäran inte att vidarebefordras till serverdelstjänsten. Principer i det utgående avsnittet utvärderas omedelbart när principerna i det inkommande avsnittet har slutförts.

Kommentar

Ange principens element och underordnade element i den ordning som anges i principbeskrivningen. Läs mer om hur du anger eller redigerar API Management-principer.

Principuttryck

<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"/>

Attribut

Attribut beskrivning Obligatoriskt Standardvärde
timeout Hur lång tid i sekunder som ska vänta tills HTTP-svarshuvudena returneras av serverdelstjänsten innan ett timeout-fel utlöses. Minimivärdet är 0 sekunder. Värden som är större än 240 sekunder kanske inte respekteras, eftersom den underliggande nätverksinfrastrukturen kan släppa inaktiva anslutningar efter den här tiden. Principuttryck tillåts. Du kan ange antingen timeout eller timeout-ms men inte båda. Nej 300
timeout-ms Hur lång tid i millisekunder som ska vänta tills HTTP-svarshuvudena returneras av serverdelstjänsten innan ett timeoutfel uppstår. Minimivärdet är 0 ms. Principuttryck tillåts. Du kan ange antingen timeout eller timeout-ms men inte båda. Nej Ej tillämpligt
continue-timeout Hur lång tid i sekunder 100 Continue som en statuskod ska returneras av serverdelstjänsten innan ett timeout-fel utlöses. Principuttryck tillåts. Nej Ej tillämpligt
http-version DEN HTTP-specifikationsversion som ska användas när HTTP-svaret skickas till serverdelstjänsten. När du använder 2or1kommer gatewayen att gynna HTTP /2 över /1, men återgå till HTTP /1 om HTTP /2 inte fungerar. Nej 1
follow-redirects Anger om omdirigeringar från serverdelstjänsten följs av gatewayen eller returneras till anroparen. Principuttryck tillåts. Nej false
buffer-request-body När den är inställd truepå buffras begäran och återanvänds vid återförsök. Nej false
buffertsvar Påverkar bearbetning av segmenterade svar. När värdet falseär inställt på returneras varje segment som tas emot från serverdelen omedelbart till anroparen. När värdet trueär inställt på buffrade segment (8 KB, såvida inte dataströmmens slut identifieras) och returneras först sedan till anroparen.

Ange till med serverdelar, till false exempel de som implementerar serversända händelser (SSE) som kräver att innehåll returneras eller strömmas omedelbart till anroparen. Principuttryck tillåts inte.
Nej true
fail-on-error-status-code När det är inställt truepå utlöser avsnittet med fel för svarskoder i intervallet från 400 till 599 inklusive. Principuttryck tillåts inte. Nej false

Användning

Exempel

Skicka begäran till HTTP/2-serverdelen

Följande API-nivåprincip vidarebefordrar alla API-begäranden till en HTTP/2-serverdelstjänst.

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

Detta krävs för HTTP /2- eller gRPC-arbetsbelastningar och stöds för närvarande endast i en gateway med egen värd. Läs mer i översikten över api-gatewayen.

Vidarebefordra begäran med tidsgränsintervall

Följande API-nivåprincip vidarebefordrar alla API-begäranden till serverdelstjänsten med ett tidsgränsintervall på 60 sekunder.

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

Ärv princip från överordnat omfång

Den här åtgärdsnivåprincipen använder elementet base för att ärva serverdelsprincipen från det överordnade API-nivåomfånget.

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

Ärv inte principen från det överordnade omfånget

Den här åtgärdsnivåprincipen vidarebefordrar uttryckligen alla begäranden till serverdelstjänsten med en tidsgräns på 120 och ärver inte den överordnade API-nivåns serverdelsprincip. Om serverdelstjänsten svarar med en felstatuskod från 400 till 599, utlöses avsnittet vid fel .

<!-- 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>

Vidarebefordra inte begäranden till serverdelen

Den här åtgärdsnivåprincipen vidarebefordrar inte begäranden till serverdelstjänsten.

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

Mer information om hur du arbetar med principer finns i: