Cette page s'applique à Apigee et à Apigee hybrid.
Consultez la documentation d'
Apigee Edge.
Dans un flux conditionnel, les règles ne sont exécutées que si la condition du flux renvoie true (par opposition aux règles associées aux flux PreFlow ou PostFlow, qui sont toujours exécutés). Cette section explique comment créer un flux conditionnel.
À propos des flux conditionnels
Lors du traitement d'une requête et d'une réponse, un seul flux conditionnel est exécuté par segment : le premier flux dont la condition renvoie la valeur true.
||(OU) et &&(ET). Toutefois, par défaut, l'opérateur || a une priorité plus élevée que l'opérateur &&. Par exemple, une condition écrite A && B || C && D est évaluée comme A && (B || C) && D. Veillez à mettre l'expression entre parenthèses si vous souhaitez modifier la priorité lorsque vous utilisez ces opérateurs.
Les exemples suivants illustrent certaines manières d'utiliser des flux conditionnels.
Exemple 1
La définition ProxyEndpoint suivante affiche un flux conditionnel qui est exécuté par le ProxyEndpoint sur toutes les requêtes HTTP GET envoyées au proxy d'API :
<ProxyEndpoint name="default">
<PreFlow>
<Request/>
<Response/>
</PreFlow>
<Flows>
<Flow name="Flow-1">
<Condition>request.verb="GET"</Condition>
<Request/>
<Response/>
</Flow>
</Flows>
<PostFlow>
<Request/>
<Response/>
</PostFlow>
...
</ProxyEndpoint>Notez que la condition fait référence à la request.verb
variable de flux. Une variable de flux est une référence nommée qui contient les informations d'état associées à une transaction d'API traitée par Apigee. Apigee définit de nombreuses variables d'état que vous pouvez référencer.
Exemple 2
Si votre backend de service fournit des rapports et des prévisions météorologiques, votre API peut définir deux flux conditionnels mappés à ces ressources d'API : /reports et /forecasts. Lorsqu'un appel d'API inclut l'une de ces ressources dans l'URL, la condition est évaluée à true et la logique associée au flux conditionnel est exécutée.
Les développeurs d'applications accèdent ensuite à vos ressources en envoyant des requêtes à une URL au format suivant :
http://myAPIs.myCo.com/weather/reports
ou :
http://myAPIs.myCo.com/weather/forecasts
Dans un proxy d'API, vous pouvez définir un flux conditionnel correspondant à une ressource spécifique :
<ProxyEndpoint name="default">
<PreFlow>
<Request/>
<Response/>
</PreFlow>
<Flows>
<Flow name="Flow-1">
<Condition>(proxy.pathsuffix MatchesPath "/reports")</Condition>
<Request/>
<Response/>
</Flow>
<Flow name="Flow-2">
<Condition>(proxy.pathsuffix MatchesPath "/forecasts")</Condition>
<Request/>
<Response/>
</Flow>
</Flows>
<PostFlow>
<Request/>
<Response/>
</PostFlow>
...
</ProxyEndpoint>Dans cet exemple, vous référencez la variable de flux proxy.pathsuffix, qui contient le suffixe de l'URL utilisé pour accéder au proxy d'API. Vous pouvez ensuite associer différentes règles au flux conditionnel pour chaque ressource.
Exemple : Créer un flux conditionnel
L'exemple suivant :
- Crée un flux conditionnel qui ne s'exécute que lorsque le message de la requête est une requête HTTP
GET. - Ajoute une règle au nouveau flux.
Ajouter un flux conditionnel
Pour ajouter un flux conditionnel, procédez comme suit :
- Sélectionnez l'onglet Développer dans l'éditeur de proxy.
- Sélectionnez Points de terminaison du proxy > Par défaut dans le volet de gauche.

Remarque : Vous devrez peut-être développer l'éditeur visuel dans le volet de droite pour afficher tous les éléments. Pour ce faire, cliquez sur le séparateur et faites-le glisser entre l'éditeur visuel et l'éditeur de texte.
- Cliquez sur le bouton + au-dessus du volet Response (Réponse).

- Dans la boîte de dialogue Add conditional flow (Ajouter un flux conditionnel), sélectionnez Path et Verb (Chemin d'accès et verbe), puis saisissez dans le champ Path le suffixe de chemin d'accès qui doit se trouver dans le chemin de la requête pour que le flux conditionnel s'exécute. Voir l'exemple 2 ci-dessus

Le flux conditionnel ne s'exécute que si la requête est une requête
GET(mais pas pourPUT,POST, etc.).Le nouveau flux, intitulé
Flow-1, apparaît désormais dans le volet Point de terminaison du proxy.
Le code XML du nouveau flux conditionnel s'affiche dans l'éditeur de texte.

Vous pouvez modifier l'élément Condition si vous le souhaitez. Consultez la section Ajouter une logique aux flux.
Associer une règle au flux
Maintenant que vous avez créé le flux conditionnel, vous pouvez lui associer une règle. L'exemple suivant ajoute une règle de quota, qui limite le nombre de messages de requête au flux autorisés par un proxy d'API sur une période donnée :
- Dans le volet de gauche, cliquez sur le bouton + à droite de Policies (Règles).
- Dans la boîte de dialogue Create policy (Créer une règle), cliquez dans le champ Select policy type (Sélectionner un type de règle) et faites défiler la page jusqu'à Traffic Management (Gestion du trafic), puis sélectionnez Quota.
- Cliquez sur Create (Créer) pour créer la règle.
- Cliquez sur le bouton + à côté de Flow-1 dans le volet Request (Requête).

- Dans la boîte de dialogue Add policy step (Ajouter une étape de règle), cliquez dans le champ Select existing policy (Sélectionner une règle existante), puis sélectionnez Quota-1.
- Cliquez sur Ajouter.
Le volet Request (Requête) affiche désormais le flux et la règle associée, Quota-1.

L'éditeur de texte affiche maintenant une étape contenant la règle Quota-1 dans l'élément Flow-1 du fichier XML :

Avec cette configuration, la règle de quota sera appliquée aux requêtes GET.
Les requêtes d'autres types ne contribuent pas au nombre maximal de requêtes dans la règle de quota.
Étapes suivantes
Les rubriques suivantes fournissent des informations supplémentaires sur la construction des conditions et l'utilisation de variables :