Esta página se aplica à Apigee e à Apigee híbrida.
Confira a documentação da Apigee Edge.
Visão geral
A política SetIntegrationRequest permite criar um objeto de solicitação para a integração que você quer executar. Na política, você precisa configurar os detalhes do gatilho da API e os parâmetros de entrada necessários para executar a integração. Quando você executa a política SetIntegrationRequest, ela cria um objeto de solicitação e o salva em uma variável de fluxo. O objeto da solicitação tem todas as informações necessárias para executar a integração. Nessa etapa, a integração ainda não é executada. Para executar a integração, chame a política IntegrationIntegration ou defina uma IntegrationEndpoint. A política IntegrationCallout e a IntegrationEndpoint exigem que o objeto de solicitação execute a integração.
Esta é uma política extensível. O uso dela pode ter implicações no custo ou na utilização, dependendo da sua licença da Apigee. Para informações sobre tipos de política e implicações de uso, consulte Tipos de política.
<SetIntegrationRequest>
Especifica a política SetIntegrationRequest.
Valor padrão | N/A |
Obrigatório? | Obrigatório |
Tipo | Tipo complexo |
Elemento pai | N/A |
Elemento filho |
<ApiTrigger> <DisplayName> <IntegrationName> <IntegrationRegion> <Parameters> <ProjectId> <Request> <ScheduleTime> |
A tabela a seguir fornece uma descrição de alto nível dos elementos filhos do elemento <SetIntegrationRequest>
:
Elemento filho | Obrigatório? | Descrição |
---|---|---|
<ApiTrigger> |
Obrigatório | Nome do gatilho da API a ser chamado na integração. |
<DisplayName> |
Opcional | Um nome personalizado para a política. |
<IntegrationName> |
Opcional | Nome da integração a ser executada. |
<IntegrationRegion> |
Obrigatória | Nome da região em que a integração existe. |
<Parameters> |
Opcional | Parâmetros de entrada da integração. |
<ProjectId> |
Opcional | Nome do projeto do Google Cloud que tem a integração que você quer executar. |
<Request> |
Opcional | Nome da variável de fluxo para salvar o objeto da solicitação. |
<ScheduleTime> |
Opcional | O horário em que a integração precisa ser executada. |
A política SetIntegrationRequest usa a seguinte sintaxe:
Sintaxe
<?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>
Exemplo
O exemplo a seguir mostra a definição da 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 tem os seguintes atributos comuns a todas as políticas:
Atributo | Padrão | Obrigatório? | Descrição |
---|---|---|---|
name |
N/A | Valor |
O nome interno da política. O valor do atributo Opcionalmente, use o elemento |
continueOnError |
falso | Opcional | Defina como false para retornar um erro quando uma política falhar. Esse é o comportamento esperado para
a maioria das políticas. Defina como true para que a execução do fluxo continue, mesmo depois que uma política
falhar. Consulte também:
|
enabled |
true | Opcional | Defina como true para aplicar a política. Defina como false para desativar a política. A política não será aplicada mesmo que permaneça vinculada a um fluxo. |
async |
falso | Obsoleto | Esse atributo está obsoleto. |
Referência a elementos filhos
Esta seção descreve os elementos filhos de<SetIntegrationRequest>
.
<DisplayName>
Use além do atributo name
para rotular a política no editor de proxy da IU de gerenciamento com um nome de som diferente e mais natural.
O elemento <DisplayName>
é comum a todas as políticas.
Valor padrão | N/A |
Obrigatório? | Opcional. Se você omitir <DisplayName> , o valor do atributo name da política será usado |
Tipo | String |
Elemento pai | <PolicyElement> |
Elemento filho | Nenhuma |
O elemento <DisplayName>
usa a seguinte sintaxe:
Sintaxe
<PolicyElement> <DisplayName>POLICY_DISPLAY_NAME</DisplayName> ... </PolicyElement>
Exemplo
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
O elemento <DisplayName>
não tem atributos ou elementos filhos.
<ProjectId>
Especifica o nome do projeto do Google Cloud.
A Apigee atribui o valor especificado para esse elemento à variável de fluxo
integration.project.id
.
Valor padrão | N/A |
Obrigatório? | Opcional |
Tipo | String |
Elemento pai |
<SetIntegrationRequest> |
Elemento filho | Nenhuma |
O elemento <ProjectId>
usa a seguinte sintaxe:
Sintaxe
<ProjectId ref="FLOW_VARIABLE_NAME">GOOGLE_CLOUD_PROJECT_ID</ProjectId>
Exemplo
O exemplo a seguir configura a política para usar a variável de fluxo my_projectid_var
para buscar o ID do projeto. Se a variável não for resolvida no ambiente de execução, use apigee_staging_1
como o ID do projeto:
<ProjectId ref="my_projectid_var">apigee_staging_1</ProjectId>
A tabela a seguir descreve os atributos de <ProjectId>
:
Atributo | Obrigatório? | Tipo | Descrição |
---|---|---|---|
ref |
Opcional | String | Especifica a variável de fluxo em que a Apigee precisa ler o ID do projeto do Google Cloud. É possível definir
o elemento <ProjectId> de uma das seguintes maneiras:
|
<IntegrationName>
Especifica a integração a ser executada.
A Apigee atribui o valor especificado para esse elemento à variável de fluxo
integration.name
.
O nome da integração precisa atender aos seguintes requisitos de nomenclatura:
- Os nomes precisam começar e terminar com letras ou números.
- Não podem ter espaços.
- Não podem ter dois traços ou sublinhados consecutivos.
Valor padrão | N/A |
Obrigatório? | Opcional |
Tipo | String |
Elemento pai |
<SetIntegrationRequest> |
Elemento filho | Nenhuma |
O elemento <IntegrationName>
usa a seguinte sintaxe:
Sintaxe
<IntegrationName ref="FLOW_VARIABLE_NAME">INTEGRATION_NAME</IntegrationName>
Exemplo
O exemplo a seguir configura a política para usar a variável de fluxo my_integration_ref
para buscar o nome da integração. Se essa variável não for resolvida no ambiente de execução, use integration_1
como o nome da integração:
<IntegrationName ref="my_integration_ref">integration_1</IntegrationName>
A tabela a seguir descreve os atributos de <IntegrationName>
:
Atributo | Obrigatório? | Tipo | Descrição |
---|---|---|---|
ref |
Opcional | String | Especifica a variável de fluxo em que a Apigee precisa ler o nome da integração. É possível definir
o elemento <IntegrationName> de uma das seguintes maneiras:
|
<IntegrationRegion>
Especifica a região em que a integração existe.
No ambiente de execução, a Apigee atribui o valor do elemento à variável de fluxo integration.region
, cria um URL de destino com base na região e armazena o URL na variável de fluxo integration.target.url
.
O URL de destino com base na região tem o seguinte formato:
https://integration.region-integrations.googleapis.com
A região de integração precisa ser ter suporte da Integração com a Apigee. Para informações sobre as regiões que têm suporte da Integração com a Apigee, consulte Regiões suportadas.
Valor padrão | N/A |
Obrigatório? | Obrigatório |
Tipo | String |
Elemento pai |
<SetIntegrationRequest> |
Elemento filho | Nenhuma |
O elemento <IntegrationRegion>
usa a seguinte sintaxe:
Sintaxe
<IntegrationRegion ref="FLOW_VARIABLE_NAME">INTEGRATION_REGION</IntegrationRegion>
Exemplo
O exemplo a seguir configura a política para usar a variável de fluxo my_integration_region_ref
para buscar a região de integração e, se a variável de fluxo não for resolvida no ambiente de execução, asia-east1
vai ser usado como a região da integração:
<IntegrationRegion ref="my_integration_region_ref">asia-east1</IntegrationRegion>
A tabela a seguir descreve os atributos de <IntegrationRegion>
:
Atributo | Obrigatório? | Tipo | Descrição |
---|---|---|---|
ref |
Opcional | String | Especifica a variável de fluxo em que a Apigee precisa ler o nome da região. É possível definir
o elemento <IntegrationRegion> de uma das seguintes maneiras:
|
<ApiTrigger>
Especifica o gatilho da API a ser executado.
Especifique o nome do acionador da API no formato api_trigger/API_TRIGGER_NAME
.
A Apigee atribui o valor especificado para esse elemento à variável de fluxo
integration.api.trigger
.
Se você tiver especificado <IntegrationName>
, somente o gatilho da API dessa integração será
executado. No entanto, se você não tiver especificado <IntegrationName>
, todas as integrações com
o acionador de API especificado serão executadas.
Valor padrão | N/A |
Obrigatório? | Obrigatório |
Tipo | String |
Elemento pai |
<SetIntegrationRequest> |
Elemento filho | Nenhuma |
O elemento <ApiTrigger>
usa a seguinte sintaxe:
Sintaxe
<ApiTrigger ref="FLOW_VARIABLE_NAME">API_TRIGGER_NAME</ApiTrigger>
Exemplo
O exemplo a seguir configura a política para usar a variável de fluxo my_api_trigger_ref
para buscar o nome do acionador da API e, se a variável não for resolvida no ambiente de execução, use api_trigger/API-Trigger-2
como o nome do acionador da API:
<ApiTrigger ref="my_api_trigger_ref">api_trigger/API-Trigger-2</ApiTrigger>
A tabela a seguir descreve os atributos de <ApiTrigger>
:
Atributo | Obrigatório? | Tipo | Descrição |
---|---|---|---|
ref |
Opcional | String | Especifica a variável de fluxo em que a Apigee precisa ler o nome do acionador da API. É possível definir
o elemento <ApiTrigger> de uma das seguintes maneiras:
|
<ScheduleTime>
Especifica o horário em que a integração precisa ser executada.
Se o horário for menor ou igual ao horário atual, a integração será executada imediatamente. É
necessário especificar o horário no formato yyyy-mm-ddThh:mm:ssZ
, em que Z é o fuso horário UTC.
Por exemplo, se você especificar 2022-01-15T01:30:15Z
, a integração será programada
para 15 de janeiro de 2022, às 1:30:15 UTC. Também é possível especificar o fuso horário usando um deslocamento do UTC.
Por exemplo, se você especificar 2022-01-15T01:30:15-08:00
, a integração será programada
para 15 de janeiro de 2022, às 1:30:15 PST. Para saber mais sobre o formato do horário, consulte
Representações combinadas de data e hora.
Valor padrão | N/A |
Obrigatório? | Opcional |
Tipo | String |
Elemento pai |
<SetIntegrationRequest> |
Elemento filho | Nenhuma |
O elemento <ScheduleTime>
usa a seguinte sintaxe:
Sintaxe
<ScheduleTime>PARAMETER_VALUE</ScheduleTime>
Exemplo
No exemplo a seguir, a integração é programada para ser executada em 2022-01-15T01:30:15Z
:
<ScheduleTime>2022-01-15T01:30:15Z</ScheduleTime>
<Parameters>
Especifica os parâmetros de entrada necessários para executar a integração.
Você pode especificar parâmetros ou matrizes de parâmetros individuais.
- Para especificar um parâmetro individual, use o elemento
<Parameter>
. - Para especificar um parâmetro, use o
elemento
<ParameterArray>
.
Valor padrão | N/A |
Obrigatório? | Opcional |
Tipo | Tipo complexo |
Elemento pai |
<SetIntegrationRequest> |
Elemento filho |
<Parameter> <ParameterArray> |
A tabela a seguir descreve os atributos de <Parameters>
:
Atributo | Obrigatório? | Tipo | Descrição |
---|---|---|---|
substitutionVariableChar |
Opcional | Caracteres | Permite definir delimitadores personalizados para transmitir valores de variáveis de fluxo como argumentos de modelo no elemento filho <Parameter> .
|
O elemento <Parameters>
usa a seguinte sintaxe:
Sintaxe
<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>
Exemplo
O exemplo a seguir inicializa o parâmetro my_str_param
e a matriz 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>
A Apigee trata elementos <Parameter>
e
<ParameterArray>
vazios como valores null
. Por
exemplo, declarações como <Parameter></Parameter>
e
<ParameterArray></ParameterArray>
são tratadas como
valores null
.
<Parameter>
Especifica um parâmetro de entrada.
Valor padrão | N/A |
Obrigatório? | Opcional |
Tipo | String |
Elemento pai |
<Parameters> |
Elemento filho | None |
É possível especificar o valor do parâmetro das seguintes maneiras:
- <Parameter name="my_param" type="string">val</Parameter>: use val como o valor do parâmetro. Se val for inválido, a Apigee informará uma exceção.
- <Parameter name="my_param" type="string" ref="refval"/>: resolve a variável do fluxo refval no tempo de execução e usa o valor dela. A Apigee informará uma exceção se o valor resolvido de refval for inválido ou se o refval não tiver sido resolvido.
- <Parameter name="my_param" type="string" ref="refval">val</Parameter>: resolver a variável do fluxo refval no momento da execução e usar o valor dela. A Apigee informará uma exceção se o valor resolvido de refval for inválido. Se refval não for resolvido, a Apigee usará val como o valor do parâmetro.
- <Parameter name="my_param" type="json">{"name":"$#flowval#$"}</Parameter>: use
$#FLOW_VARIABLE_NAME#$
para transmitir valores de variáveis do fluxo como um argumento de modelo em Parâmetro. A Apigee resolve a variável de fluxo flowval no ambiente de execução e usa o valor dela. Uma exceção será informada se o valor flowval resolvido for inválido. - <Parameter name="my_param" type="json">{"name":"SUBSTITUTION_CHAR fluxoval SUBSTITUTION_CHAR"}</Parameter>: onde SUBSTITUTION_CHAR indica o valor especificado para o atributo
substitutionVariableChar
do elemento pai<Parameters>
. A Apigee resolve a variável de fluxo flowval no ambiente de execução e usa o valor dela. Uma exceção será informada se o valor flowval resolvido for inválido. .
O elemento <Parameter>
usa a seguinte sintaxe:
Sintaxe
<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>
Exemplo 1
No exemplo a seguir, o parâmetro my_str_param
é declarado como string e define
o valor como someText
.
<Parameters> <Parameter name="my_str_param" type="string">someText</Parameter> </Parameters>
Exemplo 2
O exemplo a seguir declara o parâmetro my_double_param
como duplo e atribui o valor da variável de fluxo flow_var
para o parâmetro.
<Parameters> <Parameter name="my_double_param" type="double" ref="flow_var"/> </Parameters>
Exemplo 3
O exemplo a seguir define o valor como o parâmetro inteiro my_int_param_1
.
<Parameters> <Parameter name="my_int_param_1" type="integer" ref="flow_var_1">96</Parameter> </Parameters>
Neste exemplo, se a variável de fluxo flow_var_1
é resolvida com sucesso, my_int_param_1
é definido como o valor da variável de fluxo. No entanto, se flow_var_1
não for resolvido, my_int_param_1
será definido como 96
.
Exemplo 4
O exemplo a seguir define valores para os parâmetros JSON my_json_param_1
e
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>
Neste exemplo, se a variável de fluxo flow_var_1
é resolvida com sucesso, my_json_param_1
é definido como o valor da variável de fluxo flow_var_1
. No entanto, se o flow_var_1
não for resolvido, my_json_param_1
será definido como {name:"Apple", color:"Red"}
. O
parâmetro my_json_param_2
está definido como {name:"Banana", color:"Yellow"}
porque
não há um atributo ref
especificado.
Exemplo 5
O exemplo a seguir define o valor do parâmetro JSON template_json_param
usando o valor da variável do fluxo transmitido em um modelo padrão.
<Parameters> <Parameter name="template_json_param" type="json">{"name":"$#flow_var_1#$"}</Parameter> </Parameters>
Neste exemplo, se a variável de fluxo flow_var_1
é resolvida com sucesso, template_json_param
é definido como o valor da variável de fluxo flow_var_1
. No entanto, se a flow_var_1
não for resolvida, a Apigee vai gerar uma exceção.
Exemplo 6
O exemplo a seguir define o valor para o parâmetro JSON template_json_param
usando o atributo substitutionVariableChar.
<Parameters substitutionVariableChar="#"> <Parameter name="template_json_param" type="json">{"name":"#flow_var_1#"}</Parameter> </Parameters>
Neste exemplo, se a variável de fluxo flow_var_1
é resolvida com sucesso, template_json_param
é definido como o valor da variável de fluxo flow_var_1
. No entanto, se a flow_var_1
não for resolvida, a Apigee vai gerar uma exceção.
A tabela a seguir descreve os atributos de <Parameter>
:
Atributo | Obrigatório? | Tipo | Descrição |
---|---|---|---|
name |
Obrigatório | String | Nome do parâmetro. |
type |
Obrigatório | String | Tipo de dados do parâmetro. Os tipos compatíveis são
integer , string , boolean ,
double e json . |
ref |
Opcional | String | Especifica a variável de fluxo em que a Apigee lerá o valor do parâmetro. A Apigee usa
os seguintes critérios para definir o valor dos parâmetros:
|
<ParameterArray>
Especifica uma matriz de parâmetros de entrada.
Valor padrão | N/A |
Obrigatório? | Opcional |
Tipo | Tipo complexo |
Elemento pai |
<Parameters> |
Elemento filho |
<Value> |
O elemento <Parameters>
pode ter vários elementos <ParameterArray>
dentro dele. Para uma matriz de parâmetros, defina o valor dos elementos da matriz especificando o valor real ou uma variável de fluxo no atributo ref
.
Se você especificar uma variável de fluxo, os elementos da matriz serão definidos como o valor dessa variável.
Os exemplos nesta seção descrevem as várias maneiras de configurar
o elemento <ParameterArray>
.
O elemento <ParameterArray>
usa a seguinte sintaxe:
Sintaxe
<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
O exemplo a seguir declara my_array_param
como uma matriz de números inteiros e define o valor dos elementos da matriz como 1
, 2
e 3
:
<Parameters> <ParameterArray name="my_array_param" type="integer"> <Value>1</Value> <Value>2</Value> <Value>3</Value> </ParameterArray> <Parameters/>
Example-2
O exemplo a seguir declara my_array_param
como uma matriz dupla, em que:
- O primeiro elemento é definido como o valor da variável de fluxo
flow_var_1
. - O segundo elemento está definido como
3.0
.
<Parameters> <ParameterArray name="my_array_param" type="double"> <Value ref="flow_var_1"/> <Value>3.0</Value> </ParameterArray> <Parameters/>
Exemplo-3
O exemplo a seguir declara my_array_param
como uma matriz booleana e a define
como o valor da variável de fluxo 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/>
Neste exemplo, se flow_var_1
for resolvido, my_array_param
será definido como os valores da matriz flow_var_1
. No entanto, se flow_var_1
não for resolvida, a matriz my_array_param
será definida como os valores dos elementos Value
.
Exemplo-4
O exemplo a seguir declara my_array_param
como uma matriz JSON e a define
como o valor da variável de fluxo flow_var_1
.
<Parameters> <ParameterArray name="my_array_param" type="json" ref="flow_var_1"/> <Parameters/>
Neste exemplo, se flow_var_1
for resolvido, my_array_param
será definido como os valores da matriz flow_var_1
. No entanto, se
flow_var_1
não for resolvido, a Apigee relata uma exceção.
Exemplo-5
O exemplo a seguir declara my_array_param
como uma matriz de strings e a define
como os valores da variável de fluxo 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/>
Neste exemplo, se flow_var_1
for resolvido, my_array_param
será definido como os valores da matriz flow_var_1
. Somente se
flow_var_1
não for resolvido, my_array_param
é definido como os valores
especificados nos elementos <Value>
.
A tabela a seguir descreve os atributos de <ParameterArray>
:
Atributo | Obrigatório? | Tipo | Descrição |
---|---|---|---|
name |
Obrigatório | String | Nome da matriz de parâmetros. |
type |
Obrigatório | String | Tipo de dados da matriz de parâmetros. Os tipos compatíveis são
integer , string , boolean
e double . |
ref |
Opcional | String | Especifica a variável de fluxo em que a Apigee precisa ler os valores da matriz. A Apigee usa
os seguintes critérios para definir o valor dos parâmetros:
|
<Value>
Especifica o valor de um elemento da matriz.
Valor padrão | N/A |
Obrigatório? | Opcional |
Tipo | String |
Elemento pai |
<ParameterArray> |
Elemento filho | None |
Cada elemento da matriz precisa ser um elemento <Value>
separado. É possível especificar
o valor das seguintes maneiras:
- <Value>val</Value>: use val como o valor do elemento. Se val for inválido, a Apigee informará uma exceção.
- <Value ref="refval"/>: resolva a variável de fluxo de refval no ambiente de execução e use o valor dela. A Apigee informará uma exceção se o valor resolvido de refval for inválido ou se o refval não tiver sido resolvido.
- <Value ref="refval">val</Value>: resolva a variável de fluxo de refval no ambiente de execução e use o valor dela. A Apigee informará uma exceção se o valor resolvido de refval for inválido. Se refval não for resolvido, a Apigee vai usar val como o valor do elemento.
- <Value>val1 $#flowval#$</Value>: use
$#FLOW_VARIABLE_NAME#$
para transmitir valores de variáveis do fluxo como um argumento de modelo em Valor. A Apigee resolve a variável de fluxo flowval no ambiente de execução e usa o valor dela. Uma exceção será informada se o valor flowval resolvido for inválido.
O elemento <Value>
usa a seguinte sintaxe:
Sintaxe
<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>
Exemplo 1
O exemplo a seguir declara my_array_param
como uma matriz de parâmetros inteiros
com os valores 1
, 2
e 3
:
<ParameterArray name="my_array_param" type="integer"> <Value>1</Value> <Value>2</Value> <Value>3</Value> </ParameterArray>
Exemplo 2
O exemplo a seguir declara my_array_param
como uma matriz de parâmetros de string
com valores das variáveis de fluxo flow_var_1
e flow_var_2
:
<ParameterArray name="my_array_param" type="string"> <Value ref="flow_var_1"/> <Value ref="flow_var_2"/> </ParameterArray>
Exemplo 3
O exemplo a seguir declara my_array_param
como uma matriz de parâmetros de string:
<ParameterArray name="my_array_param" type="string"> <Value ref="flow_var_1">string_1</Value> <Value ref="flow_var_2">string_2</Value> </ParameterArray>
Neste exemplo, se a
variável de fluxo for resolvida, o valor do elemento da matriz será definido como o valor da
variável de fluxo flow_var_1
. No entanto, se flow_var_1
não for resolvido, o valor do elemento da matriz será definido como string_1
.
Exemplo 4
O exemplo a seguir define o valor do parâmetro da matriz de strings template_strArray_param
usando o valor da variável de fluxo transmitido em um modelo.
<Parameters> <ParameterArray name="template_strArray_param" type="string"> <Value>apple $#flow_var_1#$</Value> </ParameterArray> </Parameters>
Neste exemplo, se a
variável de fluxo for resolvida, o valor do elemento da matriz será definido como o valor da
variável de fluxo flow_var_1
. No entanto, se flow_var_1
não for resolvido,
a Apigee vai gerar uma exceção.
A tabela a seguir descreve os atributos de <Value>
:
Atributo | Obrigatório? | Tipo | Descrição |
---|---|---|---|
ref |
Opcional | String | Especifica a variável de fluxo em que a Apigee lerá o valor do parâmetro. A Apigee usa
os seguintes critérios para definir o valor dos parâmetros:
|
<Request>
Especifica o nome da variável de fluxo para salvar a solicitação.
Após a execução da política, ele cria um novo
objeto de mensagem de solicitação
e salva o objeto na variável FLOW_VARIABLE_NAME
que você pode consultar
para ler a solicitação.
Se você não especificar um nome de variável de fluxo, a política salvará a solicitação na mensagem de solicitação, substituindo a mensagem de solicitação atual, se houver.
Valor padrão | request |
Obrigatório? | Opcional |
Tipo | String |
Elemento pai |
<SetIntegrationRequest> |
Elemento filho | Nenhuma |
O elemento <Request>
usa a seguinte sintaxe:
Sintaxe
<Request>FLOW_VARIABLE_NAME</Request>
Exemplo
No exemplo a seguir, o objeto de solicitação é salvo na variável de fluxo my_request_var
:
<Request>my_request_var</Request>
Códigos de erro
This section describes the fault codes, error messages, and the fault variables set by Apigee when this policy triggers an error. This information is essential if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
Fault code | HTTP status | Cause |
---|---|---|
steps.setintegrationrequest.EmptyParameterArray |
500 |
This error occurs when the |
steps.setintegrationrequest.EmptyParameterArrayValue |
500 |
This error occurs when the |
steps.setintegrationrequest.InvalidResolvedFlowVariable |
500 |
This error occurs when the flow variable specified in the
|
steps.setintegrationrequest.MismatchedTypeAndResolvedRef |
500 |
This error occurs when the flow variable specified in
the |
steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArray |
500 |
This error occurs when the flow variable specified in
the |
steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArrayValue |
500 |
This error occurs when the flow variable specified in
the |
steps.setintegrationrequest.RequestVariableNotMessageType |
500 |
This error occurs when the flow variable specified by the Request element
is not of message type. |
steps.setintegrationrequest.RequestVariableNotRequestMessageType |
500 |
This error occurs when the flow variable specified by the Request element
is not of Request message type. |
steps.setintegrationrequest.UnresolvedVariable |
500 |
This error occurs when Apigee can't resolve the flow variables specified in the
|
Fault variables
Whenever there are execution errors in a policy, Apigee generates error messages. You can view these error messages in the error response. Many a time, system generated error messages might not be relevant in the context of your product. You might want to customize the error messages based on the type of error to make the messages more meaningful.
To customize the error messages, you can use either fault rules or the RaiseFault policy. For
information about differences between fault rules and the RaiseFault policy, see
FaultRules vs. the RaiseFault policy.
You must check for conditions using the Condition
element in both the fault rules and the RaiseFault policy.
Apigee provides fault variables unique to each policy and the values of the fault variables are set when a policy triggers runtime errors.
By using these variables, you can check for specific error conditions and take appropriate actions. For more information about checking error
conditions, see Building conditions.
The following table describes the fault variables specific to this policy.
Variables | Where | Example |
---|---|---|
fault.name |
The fault.name can match to any of the faults listed in the Runtime errors table.
The fault name is the last part of the fault code. |
fault.name Matches "UnresolvedVariable" |
SetIntegrationRequest.POLICY_NAME.failed |
POLICY_NAME is the user-specified name of the policy that threw the fault. | SetIntegrationRequest.set-integration-request-1.failed = true |
Temas relacionados
Para saber mais sobre o recurso de integração da Apigee, consulte O que é integração da Apigee?.