Esta página se aplica a Apigee y Apigee Hybrid.
Consulta la documentación de
Apigee Edge.
Información general
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, el valor de la variable se define como true
; de lo contrario, se define como 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.claimAmount
es 500, la condición se evalúa como verdadera y, por lo tanto, la variableassertcondition.MyAssertCondition.truthValue
se asigna atrue
. - Sin embargo, si el valor de la variable
google.dialogflow.my-prefix.claimAmount
es 1200, la variableassertcondition.MyAssertCondition.truthValue
se 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
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 |