Forward request

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.

Important

  • 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.

Note

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.

Policy statement

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

Attributes

Attribute Description Required Default
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. No 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. No N/A
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. No N/A
http-version DEN HTTP-protokollversion som ska användas när HTTP-begäran skickas till serverdelstjänsten:
- 1: HTTP/1
- 2: HTTP/2
- 2or1: Gatewayen föredrar HTTP/2 över HTTP/1, men återgår till HTTP/1 om HTTP/2 inte fungerar.

UTgående HTTP/2 stöds i utvalda gatewayer. Mer information finns i Användningsanteckningar .
No 1
follow-redirects Anger om omdirigeringar från serverdelstjänsten följs av gatewayen eller returneras till anroparen. Principuttryck tillåts. No false
buffer-request-body När den är inställd truepå buffras begäran och återanvänds vid återförsök. No false
buffer-response 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.
No 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. No false

Usage

Usage notes

  • http-version Använd attributet för att aktivera utgående HTTP/2-protokoll från gatewayen till serverdelen. Ange attributet till 2or1 eller 2. För närvarande stöds UTgående HTTP/2 i den lokalt installerade gatewayen och i förhandsversionen av v2-gatewayen.

    Important

    I v2-gatewayen stöds HTTP/2 inkommande till API Management-gatewayen och utgående från gatewayen till serverdelen men inte från slutpunkt till slutpunkt. För närvarande nedgraderar v2-gatewayen en inkommande HTTP/2-anslutning till HTTP/1 innan begäran vidarebefordras till serverdelen.

Examples

Skicka begäran till HTTP/2-serverdelen

Följande API-nivåprincip vidarebefordrar alla API-begäranden till en HTTP/2-serverdelstjänst. Använd till exempel den här principen för att vidarebefordra begäranden från en gateway med egen värd till en gRPC-serverdel.

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

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: