Esta página se aplica a Apigee y Apigee Hybrid.
Consulta la documentación de
Apigee Edge.
Descripción general
La política AssertCondition evalúa una declaración condicional en el entorno de ejecución en los flujos de solicitud o respuesta. Puedes definir una condición según 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 verdadero o falso. Si quieres obtener más información para escribir una declaración condicional, consulta 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 los textos destacados posteriores o la lógica organizada.
Si una condición se evalúa como verdadera, el valor de la variable se establece en true
, de lo contrario, en false
. Si definiste varias políticas AssertCondition, el policy-name
en el nombre de la variable te ayuda a identificar de forma única la variable.
Esta 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 con cada tipo de entorno, consulta Tipos de políticas.
<AssertCondition>
Define una política <AssertCondition>
. Con esta política, puedes evaluar una declaración condicional que tiene una o más condiciones unidas por un operador lógico. Para obtener información sobre todos los operadores compatibles 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 proporciona una descripción de alto nivel de los elementos secundarios de <AssertCondition>
.
Elemento secundario | ¿Es obligatorio? | Descripción |
---|---|---|
<Condition> |
Sí | Especifica la condición que se evaluará. |
<DisplayName> |
Opcional | Un nombre personalizado para la política |
El elemento <AssertCondition>
usa 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 verifica si la variable google.dialogflow.my-prefix.claimAmount
es mayor que 0 y menor que 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>
En este ejemplo:
- Si el valor de la variable
google.dialogflow.my-prefix.claimAmount
es 500, la condición se evalúa como verdadera y, por lo tanto, la variableassertcondition.MyAssertCondition.truthValue
se establece entrue
. - Sin embargo, si el valor de la variable
google.dialogflow.my-prefix.claimAmount
es 1,200, la variableassertcondition.MyAssertCondition.truthValue
se establece enfalse
.
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 del elemento secundario
En esta sección, se describen los elementos secundarios de<AssertCondition>
.
<Condition>
Especifica la condición que se evaluará. Si quieres obtener más información para escribir una declaración condicional en Apigee, consulta Referencia de condiciones.
Valor predeterminado | N/A |
¿Es obligatorio? | Obligatorio |
Tipo | String |
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
En esta sección se describen los códigos de error y los mensajes de error que devuelve Apigee, así como las variables de error que define, cuando esta política activa un error. Es importante que conozcas esta información si vas a desarrollar reglas de errores para gestionarlos. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo gestionar los fallos.
Errores de tiempo de ejecución
Estos errores pueden producirse cuando se ejecuta la política.
Código de fallo | Estado de HTTP | Causa |
---|---|---|
steps.assertcondition.ConditionEvaluationFailed |
500 |
No se ha podido evaluar la instrucción condicional. Este error puede deberse a muchos motivos, entre los que se incluyen valores incorrectos en las variables en tiempo de ejecución. |
Errores de implementación
Estos errores pueden producirse al implementar un proxy que contenga esta política.
Nombre del error | Causa |
---|---|
InvalidCondition |
La política no ha podido validar la instrucción condicional. Este error puede deberse a muchos motivos, como condiciones con formato incorrecto o el uso de operadores no admitidos. |
Variables de error
Cuando se producen errores de ejecución en una política, Apigee genera mensajes de error. Puedes ver estos mensajes de error en la respuesta de error. En muchas ocasiones, los mensajes de error generados por el sistema pueden no ser relevantes en el contexto de su producto. Puede que quieras personalizar los mensajes de error en función del tipo de error para que sean más significativos.
Para personalizar los mensajes de error, puedes usar reglas de error o la política RaiseFault. Para obtener información sobre las diferencias entre las reglas de errores y la política RaiseFault, consulta Reglas de errores frente a la política RaiseFault.
Debes comprobar las condiciones mediante el elemento Condition
tanto en las reglas de errores como en la política RaiseFault.
Apigee proporciona variables de error únicas para cada política. Los valores de las variables de error se definen cuando una política activa errores de tiempo de ejecución.
Al usar estas variables, puede comprobar si se dan condiciones de error específicas y tomar las medidas oportunas. Para obtener más información sobre cómo comprobar las condiciones de error, consulta Crear condiciones.
En la siguiente tabla se describen las variables de error específicas de esta política.
Variables | Dónde | Ejemplo |
---|---|---|
fault.name="FAULT_NAME" |
FAULT_NAME es el nombre del error, tal como se indica en la tabla Errores de tiempo de ejecución. El nombre del error es la última parte del código de error. | fault.name Matches "ConditionEvaluationFailed" |
AssertCondition.POLICY_NAME.failed |
POLICY_NAME es el nombre de la política especificado por el usuario que ha provocado el error. | AssertCondition.My-AssertCondition.failed = true |