Règle AssertCondition

Conditions standards

Cette page s'applique à Apigee et à Apigee hybrid.

Consultez la documentation d' Apigee Edge.

La règle AssertCondition évalue une instruction conditionnelle au moment de l'exécution dans les flux de requêtes ou de réponses. Vous pouvez définir une condition en fonction des variables de flux et utiliser cette règle pour valider la condition. Une condition renvoie toujours une valeur booléenne, "true" ou "false". Pour en savoir plus sur l'écriture d'une instruction conditionnelle, consultez la documentation de référence sur les conditions.

Après l'évaluation de la condition, la règle AssertCondition stocke le résultat de l'évaluation dans la variable de flux assertcondition.policy-name.truthValue. Vous pouvez utiliser la variable de flux résultante dans vos accroches ultérieures ou votre logique orchestrée. Si une condition renvoie la valeur "true", la valeur de la variable est définie sur true. Sinon, elle est définie sur false. Si vous avez défini plusieurs règles AssertCondition, policy-name dans le nom de la variable vous permet d'identifier la variable de manière unique.

Cette règle est une règle standard qui peut être déployée sur n'importe quel type d'environnement. Pour en savoir plus sur les types de règles et la disponibilité avec chaque type d'environnement, consultez la section Types de règles.

<AssertCondition>

Définit une règle <AssertCondition>. Cette règle vous permet d'évaluer une instruction conditionnelle comportant une ou plusieurs conditions associées par un opérateur logique. Pour plus d'informations sur tous les opérateurs compatibles dans une condition, consultez la section Opérateurs.

Le résultat d'une instruction conditionnelle est une valeur booléenne qui peut être true ou false.
Valeur par défaut N/A
Obligatoire ? Obligatoire
Type Type complexe
Élément parent ND
Éléments enfants <Condition>
<DisplayName>

Le tableau suivant fournit une description détaillée des éléments enfants de <AssertCondition> :

Élément enfant Obligatoire ? Description
<Condition> Oui Spécifie la condition à évaluer.
<DisplayName> Facultatif Nom personnalisé de la règle.

L'élément <AssertCondition> utilise la syntaxe suivante :

Syntaxe

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssertCondition">
    <!-- Display name for this policy -->
    <DisplayName>DISPLAY_NAME</DisplayName>
    <!-- Assertion's condition where operators are defined -->
    <Condition>CONDITIONAL_STATEMENT</Condition>
</AssertCondition>

Exemple

L'exemple suivant vérifie si la variable google.dialogflow.my-prefix.claimAmount est supérieure à 0 et inférieure à 1 000.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssertCondition continueOnError="false" enabled="true"
        name="MyAssertCondition">
    <DisplayName>Assert My Condition</DisplayName>
    <Condition>(google.dialogflow.my-prefix.claimAmount > 0)
                and
               (google.dialogflow.my-prefix.claimAmount LesserThan 1000)</Condition>
</AssertCondition>

Dans cet exemple :

  • Si la valeur de la variable google.dialogflow.my-prefix.claimAmount est 500, la condition renvoie la valeur "true" et la variable assertcondition.MyAssertCondition.truthValue est donc définie sur true.
  • Toutefois, si la valeur de la variable google.dialogflow.my-prefix.claimAmount est 1 200, la variable assertcondition.MyAssertCondition.truthValue est définie sur false.

Cet élément possède les attributs suivants qui sont communs à toutes les règles :

Attribut Par défaut Obligatoire ? Description
name ND Obligatoire

Nom interne de la règle. La valeur de l'attribut name peut contenir des lettres, des chiffres, des espaces, des tirets, des traits de soulignement et des points. Cette valeur ne peut pas dépasser 255 caractères.

Vous pouvez également utiliser l'élément <DisplayName> pour ajouter un libellé à la règle dans l'éditeur de proxy de l'interface utilisateur de gestion avec un nom différent, en langage naturel.

continueOnError faux Facultatif Définissez sur false pour afficher une erreur en cas d'échec d'une règle. Il s'agit du comportement attendu pour la plupart des règles. Définissez sur true pour que l'exécution du flux se poursuive même après l'échec d'une règle. Voir aussi :
enabled true Facultatif Définissez sur true pour appliquer la règle. Définissez sur false pour désactiver la règle. La règle ne sera pas appliquée même si elle reste associée à un flux.
async   faux Obsolète Cet attribut est obsolète.

Référence d'élément enfant

Cette section décrit les éléments enfants de <AssertCondition>.

<Condition>

Spécifie la condition à évaluer. Pour en savoir plus sur l'écriture d'une instruction conditionnelle dans Apigee, consultez la documentation de référence sur les conditions.

Valeur par défaut N/A
Obligatoire ? Obligatoire
Type Chaîne
Élément parent <AssertCondition>
Éléments enfants Aucun

<DisplayName>

Utilisez-le, en plus de l'attribut name, pour appliquer un libellé à la règle dans l'éditeur de proxys de l'interface de gestion en utilisant un nom différent et plus naturel.

L'élément <DisplayName> est commun à toutes les règles.

Valeur par défaut N/A
Obligatoire ? Facultatif. Si vous omettez <DisplayName>, la valeur de l'attribut name de la règle est utilisée.
Type Chaîne
Élément parent <PolicyElement>
Éléments enfants Aucun

L'élément <DisplayName> utilise la syntaxe suivante :

Syntaxe

<PolicyElement>
  <DisplayName>POLICY_DISPLAY_NAME</DisplayName>
  ...
</PolicyElement>

Exemple

<PolicyElement>
  <DisplayName>My Validation Policy</DisplayName>
</PolicyElement>

L'élément <DisplayName> ne comporte aucun attribut ni élément enfant.

Codes d'erreur

This section describes the fault codes and error messages that are returned and fault variables that are set by Apigee when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Cause
steps.assertcondition.ConditionEvaluationFailed 500 Failed to evaluate the conditional statement. There can be many reasons for this error, including incorrect values in the variables at run time.

Deployment errors

These errors can occur when you deploy a proxy containing this policy.

Error name Cause
InvalidCondition The policy was not able to validate the conditional statement. There can be many reasons for this error, including malformed conditions or use of unsupported operators.

Fault variables

Whenever there are execution errors in a policy, Apigee generates error messages. You can view these error messages in the error response. Many a time, system generated error messages might not be relevant in the context of your product. You might want to customize the error messages based on the type of error to make the messages more meaningful.

To customize the error messages, you can use either fault rules or the RaiseFault policy. For information about differences between fault rules and the RaiseFault policy, see FaultRules vs. the RaiseFault policy. You must check for conditions using the Condition element in both the fault rules and the RaiseFault policy. Apigee provides fault variables unique to each policy and the values of the fault variables are set when a policy triggers runtime errors. By using these variables, you can check for specific error conditions and take appropriate actions. For more information about checking error conditions, see Building conditions.

The following table describes the fault variables specific to this policy.

Variables Where Example
fault.name="FAULT_NAME" FAULT_NAME is the name of the fault, as listed in the Runtime errors table. The fault name is the last part of the fault code. fault.name Matches "ConditionEvaluationFailed"
AssertCondition.POLICY_NAME.failed POLICY_NAME is the user-specified name of the policy that threw the fault. AssertCondition.My-AssertCondition.failed = true
For more information about policy errors, see What you need to know about policy errors.