Přeposlání požadavku

PLATÍ PRO: Všechny úrovně služby API Management

Zásady forward-request předávají příchozí požadavek back-endové službě zadané v kontextu požadavku. Adresa URL back-endové služby je zadaná v nastavení rozhraní API a dá se změnit pomocí zásad nastavené back-endové služby.

Důležité

  • Tato zásada se vyžaduje k předávání požadavků do back-endu rozhraní API. Ve výchozím nastavení služba API Management nastaví tuto zásadu v globálním oboru.
  • Odebráním této zásady se požadavek nepřesměrovává do back-endové služby. Zásady v oddílu odchozích přenosů se vyhodnocují okamžitě po úspěšném dokončení zásad v příchozím oddílu.

Poznámka:

Nastavte prvky zásad a podřízené prvky v pořadí uvedeném v prohlášení o zásadách. Přečtěte si další informace o tom, jak nastavit nebo upravit zásady služby API Management.

Prohlášení o zásadách

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

Atributy

Atribut Popis Požaduje se Výchozí
timeout Doba v sekundách čekání na vrácení hlaviček odpovědi HTTP back-endovou službou před vyvoláním chyby časového limitu. Minimální hodnota je 0 sekund. Hodnoty větší než 240 sekund nemusí být dodrženy, protože základní síťová infrastruktura může po této době vynechat nečinná připojení. Výrazy zásad jsou povolené. Můžete zadat buď timeout nebo timeout-ms ne obojí. No 300
timeout-ms Doba v milisekundách, po kterou se před vyvoláním chyby časového limitu vrátí hlavičky odpovědi HTTP back-endovou službou. Minimální hodnota je 0 ms. Výrazy zásad jsou povolené. Můžete zadat buď timeout nebo timeout-ms ne obojí. No
časový limit pro pokračování Doba v sekundách čekání na vrácení stavového 100 Continue kódu back-endovou službou před vyvoláním chyby časového limitu Výrazy zásad jsou povolené. No
http-version Verze specifikace HTTP, která se má použít při odesílání odpovědi HTTP do back-endové služby. Při použití 2or1bude brána upřednostňovat http /2 přes /1, ale pokud http /2 nefunguje, vraťte se zpět na HTTP /1. No 0
sledování přesměrování Určuje, jestli za bránou následuje přesměrování z back-endové služby nebo se vrátí volajícímu. Výrazy zásad jsou povolené. No false
buffer-request-body Pokud je nastavená hodnota true, požadavek se uloží do vyrovnávací paměti a znovu se použije při opakování. No false
buffer-response Ovlivňuje zpracování blokovaných odpovědí. Pokud je falsetato možnost nastavená, každý blok přijatý z back-endu se okamžitě vrátí volajícímu. Pokud je nastavená hodnota true, bloky dat se ukládají do vyrovnávací paměti (8 kB, pokud není zjištěn konec datového proudu) a teprve potom se vrátí volajícímu.

Nastavte na false back-endy, jako jsou například ty, které implementují události odeslané serverem (SSE), které vyžadují, aby se obsah vrátil nebo streamoval okamžitě volajícímu. Výrazy zásad nejsou povolené.
No true
fail-on-error-status-code Pokud je tato možnost nastavená na truehodnotu , aktivuje část o chybě pro kódy odpovědí v rozsahu od 400 do 599 včetně. Výrazy zásad nejsou povolené. No false

Využití

Příklady

Odeslání požadavku na back-end HTTP/2

Následující zásady na úrovni rozhraní API předávají všechny požadavky rozhraní API back-endové službě HTTP/2.

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

To se vyžaduje pro úlohy HTTP /2 nebo gRPC a aktuálně se podporuje jenom v bráně v místním prostředí. Další informace najdete v přehledu brány rozhraní API.

Forward request with timeout interval

Následující zásady na úrovni rozhraní API předávají všechny požadavky rozhraní API do back-endové služby s časovým limitem 60 sekund.

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

Dědění zásad z nadřazeného oboru

Tato zásada na úrovni operace používá base element k dědění back-endové zásady z oboru nadřazené úrovně rozhraní API.

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

Nedědí zásady z nadřazeného oboru

Tato zásada na úrovni operace explicitně předává všechny požadavky back-endové službě s vypršením časového limitu 120 a nedědí zásady back-endu na úrovni nadřazeného rozhraní API. Pokud back-endová služba odpoví stavovým kódem chyby od 400 do 599 včetně, aktivuje se část o chybě .

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

Nepřeposílat požadavky na back-end

Tato zásada na úrovni operace nepředává požadavky back-endové službě.

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

Další informace o práci se zásadami najdete v tématech: