Política AssertCondition

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.

El resultado de una instrucción condicional es un valor 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 ofrece una descripción general de los elementos secundarios de <AssertCondition>:

Elemento secundario ¿Es obligatorio? Descripción
<Condition> 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 variable assertcondition.MyAssertCondition.truthValue se asigna a true.
  • Sin embargo, si el valor de la variable google.dialogflow.my-prefix.claimAmount es 1200, la variable assertcondition.MyAssertCondition.truthValue se asigna a 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 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 falla y los mensajes de error que se muestran, y las variables de falla que establece Apigee cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.

Errores de entorno de ejecución

Estos errores pueden producirse cuando se ejecuta la política.

Código de falla Estado de HTTP Causa
steps.assertcondition.ConditionEvaluationFailed 500 No se pudo evaluar la declaración condicional. Puede haber muchas razones para este error, incluidos los valores incorrectos en las variables en el tiempo de ejecución.

Errores en la implementación

Estos errores pueden generarse cuando implementas un proxy que contiene esta política.

Nombre del error Causa
InvalidCondition La política no pudo validar la declaración condicional. Puede haber muchas razones para este error, incluidas condiciones de formato incorrecto o el uso de operadores no compatibles.

Variables con fallas

Cuando hay errores de ejecución en una política, Apigee genera mensajes de error. Puedes ver estos mensajes de error en la respuesta de error. Es posible que muchos mensajes de error generados por el sistema no sean relevantes en el contexto de tu producto. Te recomendamos personalizar los mensajes de error según el tipo de error para que los mensajes sean más significativos.

Para personalizar los mensajes de error, puedes usar reglas de falla o la política RaiseFault. Para obtener información sobre las diferencias entre las reglas de fallas y la política RaiseFault, consulta Política FaultRules en comparación con la política RaiseFault. Debes verificar las condiciones mediante el elemento Condition en las reglas de fallas y la política RaiseFault. Apigee proporciona variables de fallas únicas para cada política, y los valores de las variables de fallas se establecen cuando una política activa errores de entorno de ejecución. Si usas estas variables, puedes verificar las condiciones de error específicas y tomar las medidas adecuadas. Si deseas obtener más información para verificar las condiciones de error, consulta Condiciones de compilación.

En la siguiente tabla, se describen las variables de fallas específicas de esta política.

Variables Donde Ejemplo
fault.name="FAULT_NAME" FAULT_NAME es el nombre de la falla, como se indica en la tabla Errores del entorno de ejecución. El nombre de la falla es la última parte del código de la falla. fault.name Matches "ConditionEvaluationFailed"
AssertCondition.POLICY_NAME.failed POLICY_NAME es el nombre especificado por el usuario de la política que generó la falla. AssertCondition.My-AssertCondition.failed = true
Para obtener más información sobre los errores de políticas, consulta Qué debes saber sobre los errores de políticas.