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ório | 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 | Nenhum |
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 | Nenhum |
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 | Nenhum |
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 Application Integration. Para informações sobre as regiões que têm suporte da Application Integration, consulte Regiões suportadas.
Valor padrão | N/A |
Obrigatório? | Obrigatório |
Tipo | String |
Elemento pai |
<SetIntegrationRequest> |
Elemento filho | Nenhum |
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 | Nenhum |
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 | Nenhum |
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 | Nenhum |
É 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/>
Example-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
.
Example-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.
Example-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 | Nenhum |
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 | solicitação |
Obrigatório? | Opcional |
Tipo | String |
Elemento pai |
<SetIntegrationRequest> |
Elemento filho | Nenhum |
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
Nesta seção, descrevemos códigos, mensagens de erro e variáveis de falha definidos pela Apigee quando essa política aciona um erro. Essas informações são essenciais se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
Código de falha | Status HTTP | Causa |
---|---|---|
steps.setintegrationrequest.EmptyParameterArray |
500 |
Esse erro ocorre quando o elemento |
steps.setintegrationrequest.EmptyParameterArrayValue |
500 |
Esse erro ocorre quando o elemento |
steps.setintegrationrequest.InvalidResolvedFlowVariable |
500 |
Esse erro ocorre quando a variável de fluxo especificada no
atributo
|
steps.setintegrationrequest.MismatchedTypeAndResolvedRef |
500 |
Esse erro ocorre quando a variável de fluxo especificada no
atributo |
steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArray |
500 |
Esse erro ocorre quando a variável de fluxo especificada no
|
steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArrayValue |
500 |
Esse erro ocorre quando a variável de fluxo especificada no
|
steps.setintegrationrequest.RequestVariableNotMessageType |
500 |
Esse erro ocorre quando a variável de fluxo especificada pelo elemento Request
não é do tipo mensagem. |
steps.setintegrationrequest.RequestVariableNotRequestMessageType |
500 |
Esse erro ocorre quando a variável de fluxo especificada pelo elemento Request
não é do tipo Mensagem de solicitação. |
steps.setintegrationrequest.UnresolvedVariable |
500 |
Esse erro ocorre quando a Apigee não pode resolver as variáveis de fluxo especificadas nos
elementos |
Variáveis de falha
Sempre que houver erros de execução em uma política, a Apigee gerará mensagens de erro. Essas mensagens de erro podem ser visualizadas na resposta de erro. Muitas vezes, as mensagens de erro geradas pelo sistema podem não ser relevantes no contexto do produto. Personalize as mensagens de erro com base no tipo específico para torná-las mais úteis.
Para personalizar as mensagens de erro, use regras de falha ou a política RaiseFault. Para
informações sobre as diferenças entre as regras de falha e a política RaiseFault, consulte
FaultRules vs. a política RaiseFault.
Verifique as condições usando o elemento Condition
nas regras de falha e na política RaiseFault.
A Apigee fornece variáveis de falha exclusivas para cada política, e os valores das variáveis de falha são definidos quando uma política aciona erros de ambiente de execução.
Ao usar essas variáveis, é possível verificar se há condições de erro específicas e agir conforme adequado. Para mais informações sobre como verificar condições de
erro, consulte Como criar condições.
A tabela a seguir descreve as variáveis de falha específicas da política.
Variáveis | Onde | Exemplo |
---|---|---|
fault.name |
O fault.name pode corresponder a qualquer uma das falhas listadas na tabela Erros de ambiente de execução.
O nome da falha é a última parte do código de falha. |
fault.name Matches "UnresolvedVariable" |
SetIntegrationRequest.POLICY_NAME.failed |
POLICY_NAME é o nome da política especificada pelo usuário que gerou a falha. | SetIntegrationRequest.set-integration-request-1.failed = true |
Temas relacionados
Para saber mais sobre o recurso de integração de aplicativos, consulte Visão geral da integração de aplicativos.