Esta página se aplica a Apigee y Apigee Hybrid.
Consulta la documentación de
Apigee Edge.
Información general
La política SetIntegrationRequest te permite crear un objeto de solicitud para una integración que quieras ejecutar. En la política, debes configurar los detalles del activador de la API y los parámetros de entrada necesarios para ejecutar la integración. Cuando ejecutas la política SetIntegrationRequest, se crea un objeto de solicitud y se guarda en una variable de flujo. El objeto de solicitud tiene toda la información necesaria para ejecutar la integración. En esta fase, la integración aún no se ha ejecutado. Para ejecutar la integración, debes llamar a la política IntegrationCallout o definir un IntegrationEndpoint. Tanto la política IntegrationCallout como IntegrationEndpoint requieren el objeto de solicitud para ejecutar la integración.
Esta política es una política extensible y su uso puede tener implicaciones en cuanto a costes o utilización, en función de tu licencia de Apigee. Para obtener información sobre los tipos de políticas y las implicaciones de uso, consulta Tipos de políticas.
<SetIntegrationRequest>
Especifica la política SetIntegrationRequest.
Valor predeterminado | N/A |
¿Es obligatorio? | Obligatorio |
Tipo | Tipo complejo |
Elemento principal | N/A |
Elementos secundarios |
<ApiTrigger> <DisplayName> <IntegrationName> <IntegrationRegion> <Parameters> <ProjectId> <Request> <ScheduleTime> |
En la siguiente tabla se ofrece una descripción general de los elementos secundarios del elemento <SetIntegrationRequest>
:
Elemento secundario | ¿Es obligatorio? | Descripción |
---|---|---|
<ApiTrigger> |
Obligatorio | Nombre del activador de API que se va a llamar en la integración. |
<DisplayName> |
Opcional | Un nombre personalizado para la política. |
<IntegrationName> |
Opcional | Nombre de la integración que se va a ejecutar. |
<IntegrationRegion> |
Obligatorio | Nombre de la región en la que se encuentra la integración. |
<Parameters> |
Opcional | Parámetros de entrada de la integración. |
<ProjectId> |
Opcional | Nombre del proyecto de Google Cloud que tiene la integración que quieres ejecutar. |
<Request> |
Opcional | Nombre de la variable de flujo en la que se guardará el objeto de solicitud. |
<ScheduleTime> |
Opcional | La hora a la que se debe ejecutar la integración. |
La política SetIntegrationRequest utiliza la siguiente sintaxis:
Sintaxis
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <SetIntegrationRequest continueOnError="[true|false]" enabled="[true|false]" name="Set-Integration-Request"> <DisplayName>POLICY_DISPLAY_NAME</DisplayName> <ProjectId ref="FLOW_VARIABLE_NAME">GOOGLE_CLOUD_PROJECT_ID</ProjectId> <IntegrationName ref="FLOW_VARIABLE_NAME">INTEGRATION_NAME</IntegrationName> <IntegrationRegion ref="FLOW_VARIABLE_NAME">INTEGRATION_REGION</IntegrationRegion> <ApiTrigger ref="FLOW_VARIABLE_NAME">API_TRIGGER_NAME</ApiTrigger> <ScheduleTime>PARAMETER_VALUE</ScheduleTime> <Parameters> <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE" ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Parameter> <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE" ref="FLOW_VARIABLE_NAME> <Value ref="FLOW_VARIABLE_NAME>PARAMETER_VALUE</Value> <Value ref="FLOW_VARIABLE_NAME>PARAMETER_VALUE</Value> <Value ref="FLOW_VARIABLE_NAME>PARAMETER_VALUE</Value> </ParameterArray> </Parameters> <Request>FLOW_VARIABLE_NAME</Request> </SetIntegrationRequest>
Ejemplo
En el siguiente ejemplo se muestra la definición de la política SetIntegrationRequest:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <SetIntegrationRequest continueOnError="false" enabled="true" name="Set-Integration-Request"> <DisplayName>Set Integration Request Policy</DisplayName> <ProjectId ref="my_projectid_var">apigee_staging_1</ProjectId> <IntegrationName ref="my_integration_ref">integration_1</IntegrationName> <IntegrationRegion ref="my_integration_ref">asia-east1</IntegrationRegion> <ApiTrigger ref="my_api_trigger_ref">API-Trigger-2</ApiTrigger> <ScheduleTime>2022-01-15T01:30:15Z</ScheduleTime> <Parameters> <Parameter name="my_str_param" type="string" ref="flow_var_1">someText</Parameter> <ParameterArray name="my_array_param" type="integer" ref="flow_var_2"> <Value ref="flow_var_3">1</Value> <Value ref="flow_var_4">2</Value> <Value ref="flow_var_5">3</Value> </ParameterArray> </Parameters> <Request>my_request_var</Request> </SetIntegrationRequest>
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<SetIntegrationRequest>
.
<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.
<ProjectId>
Especifica el nombre del proyecto de Google Cloud.
Apigee asigna el valor que especifiques para este elemento a la variable de flujo integration.project.id
.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | Cadena |
Elemento principal |
<SetIntegrationRequest> |
Elementos secundarios | Ninguno |
El elemento <ProjectId>
utiliza la siguiente sintaxis:
Sintaxis
<ProjectId ref="FLOW_VARIABLE_NAME">GOOGLE_CLOUD_PROJECT_ID</ProjectId>
Ejemplo
En el siguiente ejemplo se configura la política para usar la variable de flujo my_projectid_var
para obtener el ID del proyecto. Si la variable de flujo no se resuelve en el tiempo de ejecución, se usa apigee_staging_1
como ID del proyecto:
<ProjectId ref="my_projectid_var">apigee_staging_1</ProjectId>
En la siguiente tabla se describen los atributos de <ProjectId>
:
Atributo | ¿Es obligatorio? | Tipo | Descripción |
---|---|---|---|
ref |
Opcional | Cadena | Especifica la variable de flujo de la que Apigee debe leer el ID del proyecto de Google Cloud. Puede definir el elemento <ProjectId> de una de las siguientes formas:
|
<IntegrationName>
Especifica la integración que se va a ejecutar.
Apigee asigna el valor que especifiques para este elemento a la variable de flujo integration.name
.
El nombre de la integración debe cumplir los siguientes requisitos:
- Debe empezar y terminar con letras o números.
- No puede contener espacios.
- No puede contener dos guiones o guiones bajos consecutivos.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | Cadena |
Elemento principal |
<SetIntegrationRequest> |
Elementos secundarios | Ninguno |
El elemento <IntegrationName>
utiliza la siguiente sintaxis:
Sintaxis
<IntegrationName ref="FLOW_VARIABLE_NAME">INTEGRATION_NAME</IntegrationName>
Ejemplo
En el siguiente ejemplo se configura la política para usar la variable de flujo my_integration_ref
para obtener el nombre de la integración y, si la variable de flujo no se resuelve en el tiempo de ejecución, se usa integration_1
como nombre de la integración:
<IntegrationName ref="my_integration_ref">integration_1</IntegrationName>
En la siguiente tabla se describen los atributos de <IntegrationName>
:
Atributo | ¿Es obligatorio? | Tipo | Descripción |
---|---|---|---|
ref |
Opcional | Cadena | Especifica la variable de flujo de la que Apigee debe leer el nombre de la integración. Puede definir el elemento <IntegrationName> de una de las siguientes formas:
|
<IntegrationRegion>
Especifica la región en la que se encuentra la integración.
En el tiempo de ejecución, Apigee asigna el valor del elemento a la variable de flujo integration.region
, crea una URL de destino basada en la región y almacena la URL en la variable de flujo integration.target.url
.
La URL de destino basada en la región tiene el siguiente formato:
https://integration.region-integrations.googleapis.com
Application Integration debe admitir la región de integración. Para obtener información sobre las regiones admitidas de Application Integration, consulta Regiones admitidas.
Valor predeterminado | N/A |
¿Es obligatorio? | Obligatorio |
Tipo | Cadena |
Elemento principal |
<SetIntegrationRequest> |
Elementos secundarios | Ninguno |
El elemento <IntegrationRegion>
utiliza la siguiente sintaxis:
Sintaxis
<IntegrationRegion ref="FLOW_VARIABLE_NAME">INTEGRATION_REGION</IntegrationRegion>
Ejemplo
En el siguiente ejemplo se configura la política para usar la variable de flujo my_integration_region_ref
para obtener la región de la integración. Si la variable de flujo no se resuelve en el tiempo de ejecución, se usa asia-east1
como región de la integración:
<IntegrationRegion ref="my_integration_region_ref">asia-east1</IntegrationRegion>
En la siguiente tabla se describen los atributos de <IntegrationRegion>
:
Atributo | ¿Es obligatorio? | Tipo | Descripción |
---|---|---|---|
ref |
Opcional | Cadena | Especifica la variable de flujo de la que Apigee debe leer la región de integración. Puede definir el elemento <IntegrationRegion> de una de las siguientes formas:
|
<ApiTrigger>
Especifica el activador de API que se va a ejecutar.
Debes especificar el nombre del activador de la API en el formato api_trigger/API_TRIGGER_NAME
.
Apigee asigna el valor que especifiques para este elemento a la variable de flujo integration.api.trigger
.
Si ha especificado el <IntegrationName>
, solo se ejecutará el activador de la API de esa integración. Sin embargo, si no has especificado <IntegrationName>
, se ejecutarán todas las integraciones que tengan el activador de API especificado.
Valor predeterminado | N/A |
¿Es obligatorio? | Obligatorio |
Tipo | Cadena |
Elemento principal |
<SetIntegrationRequest> |
Elementos secundarios | Ninguno |
El elemento <ApiTrigger>
utiliza la siguiente sintaxis:
Sintaxis
<ApiTrigger ref="FLOW_VARIABLE_NAME">API_TRIGGER_NAME</ApiTrigger>
Ejemplo
En el siguiente ejemplo, se configura la política para usar la variable de flujo my_api_trigger_ref
para obtener el nombre del activador de la API. Si la variable de flujo no se resuelve en el tiempo de ejecución, se usa api_trigger/API-Trigger-2
como nombre del activador de la API:
<ApiTrigger ref="my_api_trigger_ref">api_trigger/API-Trigger-2</ApiTrigger>
En la siguiente tabla se describen los atributos de <ApiTrigger>
:
Atributo | ¿Es obligatorio? | Tipo | Descripción |
---|---|---|---|
ref |
Opcional | Cadena | Especifica la variable de flujo de la que Apigee debe leer el nombre del activador de la API. Puede definir el elemento <ApiTrigger> de una de las siguientes formas:
|
<ScheduleTime>
Especifica la hora a la que se debe ejecutar la integración.
Si la hora es anterior o igual a la hora actual, la integración se ejecuta inmediatamente. Debe especificar la hora en el formato yyyy-mm-ddThh:mm:ssZ
, donde Z es la zona horaria UTC.
Por ejemplo, si especifica 2022-01-15T01:30:15Z
, la integración se programará para que se ejecute el 15 de enero del 2022 a las 1:30:15 (UTC). También puedes especificar la zona horaria mediante un desfase con respecto a UTC.
Por ejemplo, si especifica 2022-01-15T01:30:15-08:00
, la integración se programará para ejecutarse el 15 de enero del 2022 a las 1:30:15 (PST). Para obtener más información sobre el formato de hora, consulta
Representaciones combinadas de fecha y hora.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | Cadena |
Elemento principal |
<SetIntegrationRequest> |
Elementos secundarios | Ninguno |
El elemento <ScheduleTime>
utiliza la siguiente sintaxis:
Sintaxis
<ScheduleTime>PARAMETER_VALUE</ScheduleTime>
Ejemplo
En el siguiente ejemplo se programa la integración para que se ejecute a las 2022-01-15T01:30:15Z
:
<ScheduleTime>2022-01-15T01:30:15Z</ScheduleTime>
<Parameters>
Especifica los parámetros de entrada necesarios para ejecutar la integración.
Puede especificar parámetros concretos o matrices de parámetros.
- Para especificar un parámetro concreto, use el elemento
<Parameter>
. - Para especificar una matriz de parámetros, usa el elemento
<ParameterArray>
.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | Tipo complejo |
Elemento principal |
<SetIntegrationRequest> |
Elementos secundarios |
<Parameter> <ParameterArray> |
En la siguiente tabla se describen los atributos de <Parameters>
:
Atributo | ¿Es obligatorio? | Tipo | Descripción |
---|---|---|---|
substitutionVariableChar |
Opcional | Char | Permite definir delimitadores personalizados para transferir valores de variables de flujo como argumentos de plantilla en el elemento secundario <Parameter> .
|
El elemento <Parameters>
utiliza la siguiente sintaxis:
Sintaxis
<Parameters substitutionVariableChar="SUBSTITUTION_CHAR"> <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE" ref="FLOW_VARIABLE_NAME" >PARAMETER_VALUE</Parameter> <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE">SUBSTITUTION_CHAR FLOW_VARIABLE_NAME SUBSTITUTION_CHAR</Parameter> <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE ref="FLOW_VARIABLE_NAME""> <Value>PARAMETER_VALUE</Value> <Value ref="FLOW_VARIABLE_NAME"/> <Value ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Value> </ParameterArray> </Parameters>
Ejemplo
En el siguiente ejemplo se inicializan el parámetro my_str_param
y el array de parámetros my_array_param
:
<Parameters substitutionVariableChar="#"> <Parameter name="my_str_param" type="string" ref="flow_var_1">someText</Parameter> <Parameter name="strVar" type="string">#flowvar1#</Parameter> <ParameterArray name="my_array_param" type="integer" ref="flow_var_2"> <Value>1</Value> <Value ref="flow_var_3"/> <Value ref="flow_var_4">3</Value> </ParameterArray> </Parameters>
Apigee trata los elementos <Parameter>
y <ParameterArray>
vacíos como valores null
. Por ejemplo, las declaraciones como <Parameter></Parameter>
y <ParameterArray></ParameterArray>
se tratan como valores null
.
<Parameter>
Especifica un parámetro de entrada.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | Cadena |
Elemento principal |
<Parameters> |
Elementos secundarios | Ninguno |
Puede especificar el valor del parámetro de las siguientes formas:
- <Parameter name="my_param" type="string">val</Parameter>: usa val como valor del parámetro. Si val no es válido, Apigee informa de una excepción.
- <Parameter name="my_param" type="string" ref="refval"/>: resuelve la variable de flujo refval en tiempo de ejecución y usa su valor. Apigee informa de una excepción si el valor refval resuelto no es válido o si refval no se ha resuelto.
- <Parameter name="my_param" type="string" ref="refval">val</Parameter>: resuelve la variable de flujo refval en el tiempo de ejecución y usa su valor. Apigee informa de una excepción si el valor refval resuelto no es válido. Si refval no se resuelve, Apigee usa val como valor del parámetro.
- <Parameter name="my_param" type="json">{"name":"$#flowval#$"}</Parameter>: usa
$#FLOW_VARIABLE_NAME#$
para transferir valores de variables de flujo como argumento de plantilla en Parameter. Apigee resuelve la variable de flujo flowval en el tiempo de ejecución y usa su valor. Se informa de una excepción si el valor flowval resuelto no es válido. - <Parameter name="my_param" type="json">{"name":"SUBSTITUTION_CHAR flowval SUBSTITUTION_CHAR"}</Parameter>: SUBSTITUTION_CHAR indica el valor especificado para el atributo
substitutionVariableChar
del elemento principal<Parameters>
. Apigee resuelve la variable de flujo flowval en el tiempo de ejecución y usa su valor. Se informa de una excepción si el valor flowval resuelto no es válido.
El elemento <Parameter>
utiliza la siguiente sintaxis:
Sintaxis
<Parameters substitutionVariableChar="SUBSTITUTION_CHAR"> <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE">PARAMETER_VALUE</Parameter> <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE" ref="FLOW_VARIABLE_NAME"/> <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE" ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Parameter> <Parameter name="PARAMETER_NAME" type="json">$#FLOW_VARIABLE_NAME#$</Parameter> <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE">SUBSTITUTION_CHAR FLOW_VARIABLE_NAME SUBSTITUTION_CHAR</Parameter> </Parameters>
Ejemplo 1
En el siguiente ejemplo se declara el parámetro my_str_param
como una cadena y se le asigna el valor someText
.
<Parameters> <Parameter name="my_str_param" type="string">someText</Parameter> </Parameters>
Ejemplo 2
En el siguiente ejemplo se declara el parámetro my_double_param
como un valor doble y se asigna
el valor de la variable de flujo flow_var
al parámetro.
<Parameters> <Parameter name="my_double_param" type="double" ref="flow_var"/> </Parameters>
Ejemplo 3
En el siguiente ejemplo se asigna un valor al parámetro entero my_int_param_1
.
<Parameters> <Parameter name="my_int_param_1" type="integer" ref="flow_var_1">96</Parameter> </Parameters>
En este ejemplo, si la variable de flujo flow_var_1
se resuelve correctamente, my_int_param_1
se asigna al valor de la variable de flujo. Sin embargo, si flow_var_1
no se resuelve,
my_int_param_1
se asigna a 96
.
Ejemplo 4
En el siguiente ejemplo se asignan valores a los parámetros JSON my_json_param_1
y my_json_param_2
.
<Parameters> <Parameter name="my_json_param_1" type="json" ref="flow_var_1">{name:"Apple", color:"Red"}</Parameter> <Parameter name="my_json_param_2" type="json">{name:"Banana", color:"Yellow"}</Parameter> </Parameters>
En este ejemplo, si la variable de flujo flow_var_1
se resuelve correctamente, my_json_param_1
se asigna al valor de la variable de flujo flow_var_1
. Sin embargo, si flow_var_1
no se resuelve,
my_json_param_1
se asigna a {name:"Apple", color:"Red"}
. El parámetro my_json_param_2
se define como {name:"Banana", color:"Yellow"}
, ya que no se ha especificado ningún atributo ref
.
Ejemplo 5
En el siguiente ejemplo se define el valor del parámetro JSON template_json_param
mediante el valor de la variable de flujo que se ha transferido en la plantilla predeterminada.
<Parameters> <Parameter name="template_json_param" type="json">{"name":"$#flow_var_1#$"}</Parameter> </Parameters>
En este ejemplo, si la variable de flujo flow_var_1
se resuelve correctamente, template_json_param
se asigna al valor de la variable de flujo flow_var_1
. Sin embargo, si flow_var_1
no se resuelve, Apigee genera una excepción.
Ejemplo 6
En el siguiente ejemplo se asigna el valor del parámetro JSON template_json_param
mediante el atributo substitutionVariableChar.
<Parameters substitutionVariableChar="#"> <Parameter name="template_json_param" type="json">{"name":"#flow_var_1#"}</Parameter> </Parameters>
En este ejemplo, si la variable de flujo flow_var_1
se resuelve correctamente, template_json_param
se asigna al valor de la variable de flujo flow_var_1
. Sin embargo, si flow_var_1
no se resuelve, Apigee genera una excepción.
En la siguiente tabla se describen los atributos de <Parameter>
:
Atributo | ¿Es obligatorio? | Tipo | Descripción |
---|---|---|---|
name |
Obligatorio | Cadena | Nombre del parámetro. |
type |
Obligatorio | Cadena | Tipo de datos del parámetro. Los tipos admitidos son integer , string , boolean , double y json . |
ref |
Opcional | Cadena | Especifica la variable de flujo de la que Apigee debe leer el valor del parámetro. Apigee usa los siguientes criterios para definir el valor del parámetro:
|
<ParameterArray>
Especifica una matriz de parámetros de entrada.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | Tipo complejo |
Elemento principal |
<Parameters> |
Elementos secundarios |
<Value> |
El elemento <Parameters>
puede tener varios elementos <ParameterArray>
. En el caso de una matriz de parámetros, puede definir el valor de los elementos de la matriz especificando el valor real o especificando una variable de flujo en el atributo ref
.
Si especifica una variable de flujo, los elementos de la matriz se asignan al valor de la variable de flujo.
En los ejemplos de esta sección se describen las distintas formas de configurar el elemento <ParameterArray>
.
El elemento <ParameterArray>
utiliza la siguiente sintaxis:
Sintaxis
<Parameters> <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE" ref="FLOW_VARIABLE_NAME"> <Value ref="FLOW_VARIABLE_NAME"/> <Value ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Value> <Value>PARAMETER_VALUE</Value> </ParameterArray> <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE" ref="FLOW_VARIABLE_NAME"/> <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE"> <Value ref="FLOW_VARIABLE_NAME"/> <Value ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Value> <Value>PARAMETER_VALUE</Value> </ParameterArray> <Parameters/>
Example-1
En el siguiente ejemplo se declara my_array_param
como una matriz de números enteros y se asignan los valores 1
, 2
y 3
a los elementos de la matriz:
<Parameters> <ParameterArray name="my_array_param" type="integer"> <Value>1</Value> <Value>2</Value> <Value>3</Value> </ParameterArray> <Parameters/>
Example-2
En el siguiente ejemplo se declara my_array_param
como un array doble:
- El primer elemento se asigna al valor de la variable de flujo
flow_var_1
. - El segundo elemento se ha definido como
3.0
.
<Parameters> <ParameterArray name="my_array_param" type="double"> <Value ref="flow_var_1"/> <Value>3.0</Value> </ParameterArray> <Parameters/>
Example-3
En el siguiente ejemplo, se declara my_array_param
como una matriz booleana y se le asigna el valor de la variable de flujo flow_var_1
.
<Parameters> <ParameterArray name="my_array_param" type="boolean" ref="flow_var_1"> <Value>true</Value> <Value>false</Value> <Value>false</Value> </ParameterArray> <Parameters/>
En este ejemplo, si flow_var_1
se resuelve correctamente, my_array_param
se asigna a los valores de la matriz flow_var_1
. Sin embargo, si flow_var_1
no se resuelve, la matriz my_array_param
se asigna a los valores de los elementos Value
.
Example-4
En el siguiente ejemplo, se declara my_array_param
como una matriz JSON y se le asigna el valor de la variable de flujo flow_var_1
.
<Parameters> <ParameterArray name="my_array_param" type="json" ref="flow_var_1"/> <Parameters/>
En este ejemplo, si flow_var_1
se resuelve correctamente, my_array_param
se asigna a los valores de la matriz flow_var_1
. Sin embargo, si flow_var_1
no se resuelve, Apigee informa de una excepción.
Example-5
En el siguiente ejemplo se declara my_array_param
como un array de cadenas y se le asignan los valores de la variable de flujo flow_var_1
.
<Parameters> <ParameterArray name="my_array_param" type="string" ref="flow_var_1"> <Value ref="flow_var_2"/> <Value>test_string</Value> </ParameterArray> <Parameters/>
En este ejemplo, si flow_var_1
se resuelve correctamente, my_array_param
se asigna a los valores de la matriz flow_var_1
. Solo si no se puede resolver flow_var_1
, my_array_param
se asigna a los valores especificados en los elementos <Value>
.
En la siguiente tabla se describen los atributos de <ParameterArray>
:
Atributo | ¿Es obligatorio? | Tipo | Descripción |
---|---|---|---|
name |
Obligatorio | Cadena | Nombre de la matriz de parámetros. |
type |
Obligatorio | Cadena | Tipo de datos de la matriz de parámetros. Los tipos admitidos son integer , string , boolean y double . |
ref |
Opcional | Cadena | Especifica la variable de flujo de la que Apigee debe leer los valores de la matriz. Apigee usa los siguientes criterios para definir el valor del parámetro:
|
<Value>
Especifica el valor de un elemento de una matriz.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | Cadena |
Elemento principal |
<ParameterArray> |
Elementos secundarios | Ninguno |
Cada elemento de la matriz debe ser un elemento <Value>
independiente. Puede especificar el valor de las siguientes formas:
- <Value>val</Value>: usa val como valor del elemento. Si val no es válido, Apigee informa de una excepción.
- <Value ref="refval"/>: resuelve la variable de flujo refval en tiempo de ejecución y usa su valor. Apigee informa de una excepción si el valor refval resuelto no es válido o si refval no se ha resuelto.
- <Value ref="refval">val</Value>: resuelve la variable de flujo refval en el tiempo de ejecución y usa su valor. Apigee informa de una excepción si el valor refval resuelto no es válido. Si refval no se resuelve, Apigee usa val como valor del elemento.
- <Value>val1 $#flowval#$</Value>: usa
$#FLOW_VARIABLE_NAME#$
para transferir valores de variables de flujo como argumento de plantilla en Value. Apigee resuelve la variable de flujo flowval en el tiempo de ejecución y usa su valor. Se informa de una excepción si el valor flowval resuelto no es válido.
El elemento <Value>
utiliza la siguiente sintaxis:
Sintaxis
<ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE" ref="FLOW_VARIABLE_NAME"> <Value>PARAMETER_VALUE</Value> <Value ref="FLOW_VARIABLE_NAME"/> <Value ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Value> </ParameterArray>
Ejemplo 1
En el siguiente ejemplo se declara my_array_param
como una matriz de parámetros enteros
con los valores 1
, 2
y 3
:
<ParameterArray name="my_array_param" type="integer"> <Value>1</Value> <Value>2</Value> <Value>3</Value> </ParameterArray>
Ejemplo 2
En el siguiente ejemplo se declara my_array_param
como una matriz de parámetros de cadena
con los valores de las variables de flujo flow_var_1
y flow_var_2
:
<ParameterArray name="my_array_param" type="string"> <Value ref="flow_var_1"/> <Value ref="flow_var_2"/> </ParameterArray>
Ejemplo 3
En el siguiente ejemplo se declara my_array_param
como un array de parámetros de cadena:
<ParameterArray name="my_array_param" type="string"> <Value ref="flow_var_1">string_1</Value> <Value ref="flow_var_2">string_2</Value> </ParameterArray>
En este ejemplo, si la variable de flujo se resuelve correctamente, el valor del elemento de la matriz se asigna al valor de la variable de flujo flow_var_1
. Sin embargo, si flow_var_1
no se resuelve,
el valor del elemento de la matriz se define como string_1
.
Ejemplo 4
En el siguiente ejemplo se define el valor del parámetro de matriz de cadenas template_strArray_param
mediante el valor de la variable de flujo que se ha transferido en una plantilla.
<Parameters> <ParameterArray name="template_strArray_param" type="string"> <Value>apple $#flow_var_1#$</Value> </ParameterArray> </Parameters>
En este ejemplo, si la variable de flujo se resuelve correctamente, el valor del elemento de la matriz se asigna al valor de la variable de flujo flow_var_1
. Sin embargo, si flow_var_1
no se resuelve, Apigee genera una excepción.
En la siguiente tabla se describen los atributos de <Value>
:
Atributo | ¿Es obligatorio? | Tipo | Descripción |
---|---|---|---|
ref |
Opcional | Cadena | Especifica la variable de flujo de la que Apigee debe leer el valor del parámetro. Apigee usa los siguientes criterios para definir el valor del parámetro:
|
<Request>
Especifica el nombre de la variable de flujo para guardar la solicitud.
Una vez que se ejecuta la política, se crea un objeto mensaje de solicitud y se guarda en la variable FLOW_VARIABLE_NAME
, que puedes consultar para leer la solicitud.
Si no especificas un nombre de variable de flujo, la política guarda la solicitud en el mensaje de solicitud y sobrescribe el mensaje de solicitud que ya haya, si lo hay.
Valor predeterminado | solicitud |
¿Es obligatorio? | Opcional |
Tipo | Cadena |
Elemento principal |
<SetIntegrationRequest> |
Elementos secundarios | Ninguno |
El elemento <Request>
utiliza la siguiente sintaxis:
Sintaxis
<Request>FLOW_VARIABLE_NAME</Request>
Ejemplo
En el ejemplo siguiente se guarda el objeto de solicitud en la variable de flujo my_request_var
:
<Request>my_request_var</Request>
Códigos de error
En esta sección se describen los códigos de fallo, los mensajes de error y las variables de fallo que define Apigee cuando esta política activa un error. Esta información es esencial 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.setintegrationrequest.EmptyParameterArray |
500 |
Este error se produce cuando el elemento |
steps.setintegrationrequest.EmptyParameterArrayValue |
500 |
Este error se produce cuando el elemento |
steps.setintegrationrequest.InvalidResolvedFlowVariable |
500 |
Este error se produce cuando la variable de flujo especificada en el atributo
|
steps.setintegrationrequest.MismatchedTypeAndResolvedRef |
500 |
Este error se produce cuando se resuelve la variable de flujo especificada en el atributo |
steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArray |
500 |
Este error se produce cuando se resuelve la variable de flujo especificada en el atributo |
steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArrayValue |
500 |
Este error se produce cuando se resuelve la variable de flujo especificada en el atributo |
steps.setintegrationrequest.RequestVariableNotMessageType |
500 |
Este error se produce cuando la variable de flujo especificada por el elemento Request no es de tipo message. |
steps.setintegrationrequest.RequestVariableNotRequestMessageType |
500 |
Este error se produce cuando la variable de flujo especificada por el elemento Request no es del tipo Mensaje de solicitud. |
steps.setintegrationrequest.UnresolvedVariable |
500 |
Este error se produce cuando Apigee no puede resolver las variables de flujo especificadas en los elementos |
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 |
El fault.name puede coincidir con cualquiera de los errores que se indican 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 "UnresolvedVariable" |
SetIntegrationRequest.POLICY_NAME.failed |
POLICY_NAME es el nombre de la política especificado por el usuario que ha provocado el error. | SetIntegrationRequest.set-integration-request-1.failed = true |
Temas relacionados
Si quieres obtener más información sobre la función Integración de aplicaciones, consulta el artículo Descripción general de Integración de aplicaciones.