Créer des stratégies avancées
Cette unité fournit une référence pour les stratégies Gestion des API suivantes :
- Control flow : applique de manière conditionnelle les instructions des stratégies en fonction des résultats de l’évaluation des expressions booléennes.
- Forward request : transfère la demande vers le service principal.
- Limit concurrency : empêche les stratégies incluses d’exécuter plus de requêtes simultanées que le nombre spécifié.
- Log to Event Hub : envoie des messages au format spécifié à un Event Hub défini par une entité Enregistreur d’événements.
- Mock response : abandonne l’exécution du pipeline et renvoie une réponse factice indiquée directement à l’appelant.
- Retry : effectue une nouvelle tentative d’exécution des instructions de stratégie incluses, si la condition est remplie et jusqu’à ce qu’elle le soit. L’exécution se répète selon les intervalles spécifiés et jusqu’au nombre de nouvelles tentatives spécifié.
Flux de contrôle
La stratégie choose
applique des déclarations de stratégie incluses, en fonction du résultat de l’évaluation d’expressions booléennes, similaires à une logique « if-then-else » (si...alors...ou) ou à une construction de commutateur dans un langage de programmation.
<choose>
<when condition="Boolean expression | Boolean constant">
<!— one or more policy statements to be applied if the above condition is true -->
</when>
<when condition="Boolean expression | Boolean constant">
<!— one or more policy statements to be applied if the above condition is true -->
</when>
<otherwise>
<!— one or more policy statements to be applied if none of the above conditions are true -->
</otherwise>
</choose>
La stratégie de flux de contrôle doit contenir au moins un élément <when/>
. L’élément <otherwise/>
est facultatif. Les conditions dans les éléments <when/>
sont évaluées par ordre d’apparition dans la stratégie. Les déclarations de stratégie placées dans le premier élément <when/>
sont appliquées quand l’attribut de condition a la valeur true (vrai). Les stratégies placées dans l’élément <otherwise/>
, s’il est présent, sont appliquées si tous les attributs de condition de l’élément <when/>
ont la valeur false (faux).
Transférer la requête
La stratégie forward-request
transfère la demande entrante au service back-end spécifié dans le contexte 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.
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 de sortie sont évaluées immédiatement après la réussite des stratégies dans la section d’entrée.
<forward-request timeout="time in seconds" follow-redirects="true | false"/>
Limit concurrency
La stratégie limit-concurrency
empêche les stratégies incluses d’exécuter plus de demandes simultanées que le nombre spécifié. Quand les requêtes dépassent ce nombre, les nouvelles requêtes échouent immédiatement avec un code d’état 429 Trop de requêtes.
<limit-concurrency key="expression" max-count="number">
<!— nested policy statements -->
</limit-concurrency>
Log to Event Hub
La stratégie log-to-eventhub
envoie des messages au format spécifié à un Event Hub défini par une entité Enregistreur d’événements. Comme son nom l’indique, la stratégie est utilisée pour enregistrer certaines informations sur le contexte de la réponse ou de la demande à des fins d’analyse en ligne ou hors ligne.
<log-to-eventhub logger-id="id of the logger entity" partition-id="index of the partition where messages are sent" partition-key="value used for partition assignment">
Expression returning a string to be logged
</log-to-eventhub>
Réponse factice
La mock-response
, comme le nom l’indique, est utilisée pour simuler des API et des opérations. Elle interrompt l’exécution du pipeline et retourne une réponse factice à l’appelant. La stratégie essaie toujours de renvoyer des réponses de la plus haute fidélité. Elle préfère les exemples de contenu de réponse, le cas échéant. Elle génère des exemples de réponses à partir de schémas, lorsque les schémas sont fournis et les exemples ne le sont pas. Si des exemples ou des schémas ne sont pas trouvés, des réponses sans contenu sont retournées.
<mock-response status-code="code" content-type="media type"/>
Recommencer
La stratégie retry
exécute ses stratégies enfants une fois, puis retente leur exécution jusqu’à ce que la condition
de la nouvelle tentative devienne false
ou que le count
de nouvelles tentatives soit épuisé.
<retry
condition="boolean expression or literal"
count="number of retry attempts"
interval="retry interval in seconds"
max-interval="maximum retry interval in seconds"
delta="retry interval delta in seconds"
first-fast-retry="boolean expression or literal">
<!-- One or more child policies. No restrictions -->
</retry>
Return response
La stratégie return-response
abandonne l’exécution du pipeline et renvoie une réponse par défaut ou personnalisée à l’appelant. La réponse par défaut est 200 OK
sans corps. La réponse personnalisée peut être spécifiée par le biais d’instructions de stratégie ou d’une variable de contexte. Quand les deux sont fournis, la déclaration de stratégie modifie la variable du contexte avant d’être retournée à l’appelant.
<return-response response-variable-name="existing context variable">
<set-header/>
<set-body/>
<set-status/>
</return-response>
Autres ressources
- Pour obtenir plus d’exemples de stratégie, consultez Stratégies Gestion des API.
- Gestion des erreurs dans les stratégies de la Gestion des API