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.
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.claimAmountest 500, la condition renvoie la valeur "true" et la variableassertcondition.MyAssertCondition.truthValueest donc définie surtrue. - Toutefois, si la valeur de la variable
google.dialogflow.my-prefix.claimAmountest 1 200, la variableassertcondition.MyAssertCondition.truthValueest définie surfalse.
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 Vous pouvez également utiliser l'élément |
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 |