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 true op, wordt de sectie bij fout geactiveerd voor antwoordcodes in het bereik van 400 tot en met 599. Beleidsexpressies zijn niet toegestaan. |
Nee | false |
Gebruik
- Beleidssecties: back-end
- Beleidsbereik: globaal, werkruimte, product, API, bewerking
- Gateways: klassiek, v2, verbruik, zelf-hostend, werkruimte
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>
Gerelateerd beleid
Gerelateerde inhoud
Zie voor meer informatie over het werken met beleid:
- Zelfstudie: Uw API transformeren en beveiligen
- Beleidsreferentie voor een volledige lijst met beleidsinstructies en hun instellingen
- Beleidsexpressies
- Beleid instellen of bewerken
- Beleidsconfiguraties opnieuw gebruiken
- Beleidsfragmentenopslagplaats
- Beleid ontwerpen met Behulp van Microsoft Copilot in Azure