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

本部分介绍当此政策触发错误时返回的故障代码和错误消息,以及由 Apigee 设置的故障变量。在开发故障规则以处理故障时,请务必了解此信息。如需了解详情,请参阅您需要了解的有关政策错误的信息和处理故障。

运行时错误

政策执行时可能会发生这些错误。

故障代码 HTTP 状态 原因
steps.assertcondition.ConditionEvaluationFailed 500 未能评估条件语句。导致此错误的原因有很多,包括运行时变量中的值不正确。

部署错误

在您部署包含此政策的代理时,可能会发生这些错误。

错误名称 原因
InvalidCondition 政策无法验证条件语句。导致此错误的原因有很多,包括格式错误或使用不受支持的运算符。

故障变量

只要政策中存在执行错误,Apigee 就会生成错误消息。您可以在错误响应中查看这些错误消息。很多时候,系统生成的错误消息可能与您的产品上下文无关。您可能希望根据错误类型自定义错误消息,以使消息更有意义。

如需自定义错误消息,可以使用故障规则或 RaiseFault 政策。如需了解故障规则与 RaiseFault 政策之间的差异,请参阅 FaultRule 与 RaiseFault 政策。您必须使用故障规则和 RaiseFault 政策中的 Condition 元素来检查条件。Apigee 提供每个政策独有的故障变量,并在政策触发运行时错误时设置故障变量的值。通过使用这些变量,您可以检查特定的错误情况并采取适当的操作。如需详细了解如何检查错误条件,请参阅构建条件。

下表介绍了特定于此政策的故障变量。

变量 地点 示例
fault.name="FAULT_NAME" FAULT_NAME 是故障名称,如运行时错误表中所列。故障名称是故障代码的最后一部分。 fault.name Matches "ConditionEvaluationFailed"
AssertCondition.POLICY_NAME.failed POLICY_NAME 是抛出故障的政策的用户指定名称。 AssertCondition.My-AssertCondition.failed = true
如需详细了解政策错误,请参阅您需要了解的政策错误相关信息。