Información general
La política ReadPropertySet lee conjuntos de propiedades y rellena la variable de flujo con los resultados.
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.
Elemento <ReadPropertySet>
Define una política ReadPropertySet.
Valor predeterminado | Consulta la pestaña Política predeterminada que aparece más abajo. |
¿Es obligatorio? | Obligatorio |
Tipo | Objeto complejo |
Elemento principal | N/A |
Elementos secundarios |
<Read> |
El elemento <ReadPropertySet>
utiliza la siguiente sintaxis:
Sintaxis
El elemento <ReadPropertySet>
utiliza la siguiente sintaxis:
<ReadPropertySet name="read-property-set"> <Read> <Name ref="set-ref">property-set-name</Name> <Key ref="key-ref">key-name</Key> <AssignTo>var1</AssignTo> <DefaultValue>default-value</DefaultValue> </Read> ... <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ReadPropertySet>
Política predeterminada
En el siguiente ejemplo se muestran los ajustes predeterminados al añadir una política ReadPropertySet a tu flujo en la interfaz de usuario de Apigee:
<ReadPropertySet name="read-property-set"> <Read> <Name ref="set-ref">property-set-name</Name> <Key ref="key-ref">key-name</Key> <AssignTo>var1</AssignTo> <DefaultValue>default-value</DefaultValue> </Read> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ReadPropertySet>
Cuando insertas una nueva política ReadPropertySet en la interfaz de Apigee, la plantilla contiene stubs para todas las operaciones posibles. Consulta la información sobre los elementos obligatorios más abajo.
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. |
En la siguiente tabla se ofrece una descripción general de los elementos secundarios de <ReadPropertySet>
:
Elemento secundario | ¿Es obligatorio? | Descripción |
---|---|---|
<Read> |
Obligatorio | Lee y resuelve una variable de conjunto de propiedades y la asigna a una variable de flujo especificada. |
<IgnoreUnresolvedVariables> |
Opcional | Determina si el procesamiento se detiene cuando no se resuelve un conjunto de propiedades. |
Ejemplo
En esta sección se muestra un ejemplo con <ReadPropertySet>
.
Ejemplo
En este ejemplo se usa <ReadPropertySet>
para obtener propertyset.environment.name.request.headers.api-version
y asignarlo a target_url
. Si no se obtiene el valor del conjunto de propiedades, se utiliza https://httpbin.org/get
.
<ReadPropertySet name="read-property-set"> <Read> <Name ref="set-ref">environment.name</Name> <Key ref="key-ref">request.headers.api-version</Key> <AssignTo>target_url</AssignTo> <DefaultValue>https://httpbin.org/get</DefaultValue> </Read> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> </ReadPropertySet>
Referencia de elemento secundario
En esta sección se describen los elementos secundarios de <ReadPropertySet>
.
<Read>
Resuelve una variable de conjunto de propiedades y establece el resultado en una variable de flujo.
El elemento <Read>
especifica la variable del conjunto de propiedades que se va a resolver y la variable de flujo a la que se va a asignar ese valor. También incluye un valor predeterminado opcional, que se usa en caso de que no se resuelva el conjunto de propiedades. Puede incluir varios elementos <Read>
en una sola política <ReadPropertySet>
.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | Tipo complejo |
Elemento principal |
<ReadPropertySet>
|
Elementos secundarios |
<Name> <Key> <AssignTo> <DefaultValue> |
El elemento <Read>
utiliza la siguiente sintaxis:
Sintaxis
<Read> <Name ref="set-ref">property-set-name</Name> <Key ref="key-ref">key-name</Key> <AssignTo>var1</AssignTo> <DefaultValue>default-value</DefaultValue> </Read>
Ejemplo
En este ejemplo se usa <ReadPropertySet>
para obtener propertyset.environment.name.request.headers.api-version
y asignarlo a target_url
. Si no se obtiene el valor del conjunto de propiedades, se utiliza https://httpbin.org/get
.
<ReadPropertySet name="read-property-set"> <Read> <Name ref="environment.name">my-property-set-name</Name> <Key ref="request.headers.api-version">my-property-set-key</Key> <AssignTo>target_url</AssignTo> <DefaultValue>https://httpbin.org/get</DefaultValue> </Read> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> </ReadPropertySet>
En la siguiente tabla se ofrece una descripción general de los elementos secundarios de <Read>
.
Elemento secundario | ¿Es obligatorio? | Descripción |
---|---|---|
<Name> |
Obligatorio | Cadena. Propiedad definida para leer. Proporciona el ref , el valor o ambos.
Apigee primero intenta resolver el
|
<Key> |
Obligatorio | Cadena. Clave del conjunto de propiedades que se usa al resolver la variable. Proporciona el ref , el valor o ambos.
Apigee primero intenta resolver el
|
<AssignTo> |
Obligatorio | Cadena Especifica la variable de flujo a la que se asignará la variable resuelta. |
<DefaultValue> |
Opcional | Cadena Especifica un valor predeterminado que se debe usar cuando no se pueda resolver la variable. |
<IgnoreUnresolvedVariables>
Determina si el procesamiento se detiene cuando no se resuelve un conjunto de propiedades. Asigna el valor true
para ignorar las variables sin resolver y continuar con el procesamiento.
IgnoreUnresolvedVariables
no se aplica cuando se proporciona <DefaultValue>
.
Valor predeterminado | Falso |
¿Es obligatorio? | Opcional |
Tipo | Booleano |
Elemento principal |
<ReadPropertySet>
|
Elementos secundarios | Ninguno |
Referencia de errores
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 se definen en Apigee para la política <ReadPropertySet>
.
Es importante conocer 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 las 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.readpropertyset.UnresolvedVariable |
500 |
Este error se produce si una variable especificada en la política ReadPropertySet es:
Si |
Errores de implementación
Estos errores pueden producirse al implementar un proxy que contenga esta política.
Nombre del error | Causa |
---|---|
steps.readpropertyset.EmptyReads |
La política no tiene elementos secundarios <Read> . |
steps.readpropertyset.FieldUnset |
Este código se devuelve cuando se cumple alguna de estas condiciones:
|
Variables de error
Estas variables se definen cuando esta política activa un error en el tiempo de ejecución. Para obtener más información, consulta Qué debes saber sobre los errores de las políticas.
Variables | Dónde | Ejemplo |
---|---|---|
fault.name="FAULT_NAME" |
FAULT_NAME es el nombre del fallo, tal como se indica en la tabla Errores de tiempo de ejecución de arriba. El nombre del error es la última parte del código de error. | fault.name Matches "UnresolvedVariable" |
readpropertyset.POLICY_NAME.failed |
POLICY_NAME es el nombre de la política especificado por el usuario que ha provocado el error. | readpropertyset.RPS-SetResponse.failed = true |
Ejemplo de respuesta de error
{ "fault": { "faultstring": "ReadPropertySet[RPS-SetResponse]: unable to resolve variable [variable_name]", "detail": { "errorcode": "steps.readpropertyset.UnresolvedVariable" } } }
Regla de fallo de ejemplo
<FaultRule name="ReadPropertySet Faults"> <Step> <Name>RPS-CustomSetVariableErrorResponse</Name> <Condition>(fault.name = "SetVariableFailed")</Condition> </Step> <Condition>(readpropertyset.failed = true)</Condition> </FaultRule>
Esquemas
Cada tipo de política se define mediante un esquema XML (.xsd
). Puedes consultar los esquemas de políticas en GitHub.