Transférer la requête
S’APPLIQUE À : tous les niveaux de Gestion des API
La stratégie forward-request
transfère la demande entrante au service principal spécifié dans le forward-request
de la demande. L’URL du service back-end est spécifiée dans les paramètres de l’API et peut être modifiée à l’aide de la stratégie set backend service.
Important
- Cette stratégie est nécessaire pour transférer des requêtes vers un back-end d’API. Par défaut, le service Gestion des API configure cette stratégie à l’étendue globale.
- La suppression de cette stratégie empêche le transfert de la requête vers le service back-end. Les stratégies de la section sortante sont évaluées immédiatement après la réussite des stratégies dans la section entrante.
Notes
Définissez les éléments enfants et de stratégie dans l’ordre fourni dans l’instruction de stratégie. En savoir plus sur comment définir ou modifier des stratégies du service Gestion des API.
Instruction de la stratégie
<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"/>
Attributs
Attribut | Description | Obligatoire | Default |
---|---|---|---|
délai d'expiration | Durée, en secondes, de l’attente du retour des en-têtes de réponse HTTP par le service back-end avant de déclencher une erreur de délai d’expiration. La valeur minimale est 0 seconde. Il est possible que les valeurs supérieures à 240 secondes ne soient pas prises en compte, car l’infrastructure réseau sous-jacente peut supprimer des connexions inactives après ce délai. Les expressions de stratégie sont autorisées. Vous pouvez spécifier timeout ou timeout-ms , mais pas les deux. |
Non | 300 |
timeout-ms | Durée, en millisecondes, de l’attente du retour des en-têtes de réponse HTTP par le service back-end avant de déclencher une erreur de délai d’expiration. La valeur minimale est 0 ms. Les expressions de stratégie sont autorisées. Vous pouvez spécifier timeout ou timeout-ms , mais pas les deux. |
Non | N/A |
continue-timeout | La durée, en secondes, de l’attente du retour pour un 100 Continue code d’état par le service back-end avant de déclencher une erreur de délai d’expiration. Les expressions de stratégie sont autorisées. |
Non | N/A |
http-version | Version de la spécification HTTP à utiliser lors de l’envoi de la réponse HTTP au service back-end. Lorsque vous utilisez 2or1 , la passerelle privilégie HTTP/2 par rapport à /1, mais revient à HTTP/1 si HTTP/2 ne fonctionne pas. |
Non | 1 |
follow-redirects | Indique si les redirections à partir du service principal sont suivies par la passerelle ou renvoyées à l’appelant. Les expressions de stratégie sont autorisées. | Non | false |
buffer-request-body | Quand la valeur est définie sur true , la demande est mise en mémoire tampon et est réutilisée lors d’une nouvelle tentative. |
Non | false |
buffer-response | Affecte le traitement des réponses mémorisées en bloc. Quand la valeur est définie sur false , chaque bloc reçu du back-end est retourné immédiatement à l’appelant. Quand la valeur est définie sur true , les blocs sont mis en mémoire tampon (8 Ko, sauf si la fin du flux est détectée) puis retournés à l’appelant.Définissez la valeur sur false avec les back-ends comme ceux qui implémentent des événements envoyés par le serveur (SSE) nécessitant que le contenu soit retourné ou transmis en continu immédiatement à l’appelant. Les expressions de stratégie ne sont pas autorisées. |
Non | true |
fail-on-error-status-code | Quand la valeur est définie sur true , la section on-error est déclenchée pour les codes de réponse dans la plage comprise entre 400 et 599. Les expressions de stratégie ne sont pas autorisées. |
Non | false |
Usage
- Sections de la stratégie : backend
- Étendues de la stratégie : global, espace de travail, produit, API, opération
- Passerelles : classiques, v2, consommation, auto-hébergées, espace de travail
Exemples
Envoyer une requête au service back-end HTTP/2
La stratégie au niveau de l’API suivante transfère toutes les requêtes d’API à un service back-end HTTP/2.
<!-- api level -->
<policies>
<inbound>
<base/>
</inbound>
<backend>
<forward-request http-version="2or1"/>
</backend>
<outbound>
<base/>
</outbound>
</policies>
Cela est requis pour les charges de travail HTTP/2 ou gRPC et actuellement pris en charge uniquement dans la passerelle auto-hébergée. Découvrez-en plus dans notre présentation de la passerelle API.
Transférer la demande avec intervalle de délai d’expiration
La stratégie au niveau de l’API suivante transfère toutes les demandes d’API au service back-end avec un délai d’expiration de 60 secondes.
<!-- api level -->
<policies>
<inbound>
<base/>
</inbound>
<backend>
<forward-request timeout="60"/>
</backend>
<outbound>
<base/>
</outbound>
</policies>
Hériter la stratégie de l’étendue parente
Cette stratégie au niveau de l’opération utilise l’élément base
pour hériter de la stratégie backend de l’étendue au niveau de l’API parente.
<!-- operation level -->
<policies>
<inbound>
<base/>
</inbound>
<backend>
<base/>
</backend>
<outbound>
<base/>
</outbound>
</policies>
Ne pas hériter la stratégie de l’étendue parente
Cette stratégie au niveau de l’opération transfère explicitement toutes les demandes au service principal avec un délai d’expiration de 120 secondes et n’hérite pas de la stratégie principale au niveau de l’API parente. Si le service back-end répond avec un code d’état d’erreur compris entre 400 et 599, la section on-error sera déclenchée.
<!-- 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>
Ne pas transférer les demandes au back-end
Cette stratégie au niveau de l’opération ne transmet pas de requêtes au service principal.
<!-- operation level -->
<policies>
<inbound>
<base/>
</inbound>
<backend>
<!-- no forwarding to backend -->
</backend>
<outbound>
<base/>
</outbound>
</policies>
Stratégies connexes
Contenu connexe
Pour plus d’informations sur l’utilisation des stratégies, consultez :
- Tutoriel : Transformer et protéger votre API
- Référence de stratégie pour obtenir la liste complète des instructions et des paramètres de stratégie
- Expressions de stratégie
- Définir ou modifier des stratégies
- Réutilisation de configurations de stratégie
- Référentiel d’extrait de stratégie
- Créer des stratégies à l’aide de Microsoft Copilot dans Azure