Share via


Aanvraag doorsturen

VAN TOEPASSING OP: Alle API Management-lagen

Het forward-request beleid stuurt de binnenkomende aanvraag door naar de back-endservice die is opgegeven in de aanvraagcontext. De URL van de back-endservice wordt opgegeven in de API-instellingen en kan worden gewijzigd met behulp van het beleid voor de back-endservice.

Belangrijk

  • Dit beleid is vereist voor het doorsturen van aanvragen naar een API-back-end. Api Management stelt dit beleid standaard in op het globale bereik.
  • Als u dit beleid verwijdert, wordt de aanvraag niet doorgestuurd naar de back-endservice. Beleidsregels in de sectie Uitgaand verkeer worden onmiddellijk geëvalueerd nadat het beleid is voltooid in de sectie Binnenkomend verkeer.

Notitie

Stel de elementen en onderliggende elementen van het beleid in de volgorde in die in de beleidsverklaring is opgegeven. Meer informatie over het instellen of bewerken van API Management-beleid.

Beleidsinstructie

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

Kenmerken

Kenmerk Beschrijving Vereist Standaardinstelling
timeout De hoeveelheid tijd in seconden die moet worden gewacht totdat de HTTP-antwoordheaders worden geretourneerd door de back-endservice voordat er een time-outfout optreedt. De minimumwaarde is 0 seconden. Waarden die groter zijn dan 240 seconden, worden mogelijk niet gehonoreerd, omdat de onderliggende netwerkinfrastructuur na deze tijd niet-actieve verbindingen kan verwijderen. Beleidsexpressies zijn toegestaan. U kunt een timeout van beide opgeven of timeout-ms niet beide. Nee 300
time-out-ms De hoeveelheid tijd in milliseconden om te wachten totdat de HTTP-antwoordheaders worden geretourneerd door de back-endservice voordat er een time-outfout optreedt. De minimumwaarde is 0 ms. Beleidsexpressies zijn toegestaan. U kunt een timeout van beide opgeven of timeout-ms niet beide. Nee N.v.t.
time-out voor continue De hoeveelheid tijd in seconden die moet worden gewacht totdat een 100 Continue statuscode wordt geretourneerd door de back-endservice voordat er een time-outfout optreedt. Beleidsexpressies zijn toegestaan. Nee N.v.t.
http-version De versie van de HTTP-specificatie die moet worden gebruikt bij het verzenden van het HTTP-antwoord naar de back-endservice. Wanneer de gateway wordt gebruikt 2or1, is http/2 gunstig voor /1, maar valt deze terug op HTTP /1 als HTTP/2 niet werkt. Nee 1
follow-redirects Hiermee geeft u op of omleidingen van de back-endservice worden gevolgd door de gateway of worden geretourneerd naar de aanroeper. Beleidsexpressies zijn toegestaan. Nee false
buffer-request-body Wanneer deze optie is ingesteld true, wordt de aanvraag gebufferd en opnieuw gebruikt bij opnieuw proberen. Nee false
bufferrespons Beïnvloedt de verwerking van gesegmenteerde antwoorden. Wanneer dit is ingesteld false, wordt elk segment dat van de back-end wordt ontvangen, onmiddellijk teruggezet naar de aanroeper. Wanneer deze optie is ingesteld true, worden segmenten gebufferd (8 kB, tenzij het einde van de stream wordt gedetecteerd) en worden ze alleen teruggezet naar de beller.

Ingesteld op false back-ends, zoals back-ends die door de server verzonden gebeurtenissen (SSE) implementeren waarvoor inhoud onmiddellijk naar de beller moet worden geretourneerd of gestreamd. Beleidsexpressies zijn niet toegestaan.
Nee true
fail-on-error-status-code Als dit is ingesteld trueop, wordt de sectie bij fout geactiveerd voor antwoordcodes in het bereik van 400 tot en met 599. Beleidsexpressies zijn niet toegestaan. Nee false

Gebruik

Voorbeelden

Aanvraag verzenden naar HTTP/2-back-end

Met het volgende BELEID op API-niveau worden alle API-aanvragen doorgestuurd naar een HTTP/2-back-endservice.

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

Dit is vereist voor HTTP/2- of gRPC-workloads en wordt momenteel alleen ondersteund in zelf-hostende gateway. Meer informatie vindt u in het overzicht van de API-gateway.

Aanvraag doorsturen met time-outinterval

Met het volgende BELEID op API-niveau worden alle API-aanvragen doorgestuurd naar de back-endservice met een time-outinterval van 60 seconden.

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

Beleid overnemen van bovenliggend bereik

Dit beleid op bewerkingsniveau maakt gebruik van het base element om het back-endbeleid over te nemen van het bovenliggende BEREIK op API-niveau.

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

Beleid niet overnemen van bovenliggend bereik

Dit beleid op bewerkingsniveau stuurt alle aanvragen expliciet door naar de back-endservice met een time-out van 120 en neemt het back-endbeleid op bovenliggend API-niveau niet over. Als de back-endservice reageert met een foutcode van 400 tot en met 599, wordt de sectie on-error geactiveerd.

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

Aanvragen niet doorsturen naar back-end

Dit beleid op bewerkingsniveau stuurt geen aanvragen door naar de back-endservice.

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

Zie voor meer informatie over het werken met beleid: