Esta página se aplica a Apigee y Apigee hybrid.
Consulta la documentación de
Apigee Edge.
La política AssertCondition evalúa una instrucción condicional en tiempo de ejecución en los flujos de solicitud o respuesta. Puede definir una condición basada en las variables de flujo y usar esta política para confirmar la condición. Una condición siempre se evalúa como un valor booleano, ya sea true o false. Para obtener más información sobre cómo escribir una instrucción condicional, consulta la referencia de condiciones.
Después de evaluar la condición, la política AssertCondition almacena el resultado de la evaluación en la variable de flujo assertcondition.policy-name.truthValue.
Puedes usar la variable de flujo resultante en las llamadas o la lógica orquestada posteriores.
Si una condición se evalúa como verdadera, la variable toma el valor true; de lo contrario, toma el valor false. Si ha definido varias políticas AssertCondition, el policy-name del nombre de la variable le ayudará a identificarla de forma única.
Esta política es una política estándar y se puede implementar en cualquier tipo de entorno. Para obtener información sobre los tipos de políticas y la disponibilidad de cada tipo de entorno, consulta Tipos de políticas.
<AssertCondition>
Define una política de <AssertCondition>. Con esta política, puede evaluar una instrucción condicional que tenga una o varias condiciones unidas por un operador lógico. Para obtener información sobre todos los operadores admitidos en una condición, consulta Operadores.
true o false.
| Valor predeterminado | N/A |
| ¿Es obligatorio? | Obligatorio |
| Tipo | Tipo complejo |
| Elemento principal | N/A |
| Elementos secundarios |
<Condition><DisplayName> |
En la siguiente tabla se ofrece una descripción general de los elementos secundarios de <AssertCondition>:
| Elemento secundario | ¿Es obligatorio? | Descripción |
|---|---|---|
<Condition> |
Sí | Especifica la condición que se va a evaluar. |
<DisplayName> |
Opcional | Un nombre personalizado para la política. |
El elemento <AssertCondition> utiliza la siguiente sintaxis:
Sintaxis
<?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>Ejemplo
En el siguiente ejemplo se comprueba si la variable google.dialogflow.my-prefix.claimAmount es mayor que 0 y menor que 1000.
<?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>En este ejemplo:
- Si el valor de la variable
google.dialogflow.my-prefix.claimAmountes 500, la condición se evalúa como verdadera y, por lo tanto, la variableassertcondition.MyAssertCondition.truthValuese asigna atrue. - Sin embargo, si el valor de la variable
google.dialogflow.my-prefix.claimAmountes 1200, la variableassertcondition.MyAssertCondition.truthValuese asigna afalse.
Este elemento tiene los siguientes atributos, que son comunes a todas las políticas:
| Atributo | Predeterminado | ¿Es obligatorio? | Descripción |
|---|---|---|---|
name |
N/A | Obligatorio |
El nombre interno de la política. El valor del atributo Opcionalmente, usa el elemento |
continueOnError |
falso | Opcional | Asigna el valor false para devolver un error cuando falle una política. Este es el comportamiento esperado de la mayoría de las políticas. Asigna el valor true para que la ejecución del flujo continúe incluso después de que falle una política. Consulta también:
|
enabled |
true | Opcional | Asigna el valor true para aplicar la política. Selecciona false para desactivar la política. La política no se aplicará aunque siga adjunta a un flujo. |
async |
falso | Obsoleto | Este atributo está obsoleto. |
Referencia de elemento secundario
En esta sección se describen los elementos secundarios de<AssertCondition>.
<Condition>
Especifica la condición que se va a evaluar. Para obtener más información sobre cómo escribir una instrucción condicional en Apigee, consulta la referencia de condiciones.
| Valor predeterminado | N/A |
| ¿Es obligatorio? | Obligatorio |
| Tipo | Cadena |
| Elemento principal |
<AssertCondition>
|
| Elementos secundarios | Ninguno |
<DisplayName>
Se usa junto con el atributo name para etiquetar la política en el editor de proxy de la interfaz de usuario de gestión con un nombre diferente que suene más natural.
El elemento <DisplayName> es común a todas las políticas.
| Valor predeterminado | N/A |
| ¿Es obligatorio? | Opcional. Si omite <DisplayName>, se usará el valor del atributo name de la política. |
| Tipo | Cadena |
| Elemento principal | <PolicyElement> |
| Elementos secundarios | Ninguno |
El elemento <DisplayName> utiliza la siguiente sintaxis:
Sintaxis
<PolicyElement> <DisplayName>POLICY_DISPLAY_NAME</DisplayName> ... </PolicyElement>
Ejemplo
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
El elemento <DisplayName> no tiene atributos ni elementos secundarios.
Códigos de error
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 |