Política AssertCondition

Esta página se aplica a Apigee y Apigee Hybrid.

Consulta la documentación de Apigee Edge.

ícono de política

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.

El resultado de una declaración condicional es un booleano que puede ser 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> 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 variable assertcondition.MyAssertCondition.truthValue se establece en true.
  • Sin embargo, si el valor de la variable google.dialogflow.my-prefix.claimAmount es 1,200, la variable assertcondition.MyAssertCondition.truthValue se establece en false.

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 name puede contener letras, números, espacios, guiones, guiones bajos y puntos. Este valor no puede superar los 255 caracteres.

Opcionalmente, usa el elemento <DisplayName> para etiquetar la política en el editor de proxy de la interfaz de gestión con un nombre diferente en lenguaje natural.

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
Para obtener más información sobre los errores de las políticas, consulta Qué debes saber sobre los errores de las políticas.