Esta página aplica-se ao Apigee e ao Apigee Hybrid.
Veja a documentação do
Apigee Edge.
Vista geral
A política SetIntegrationRequest permite-lhe criar um objeto de pedido para uma integração que quer executar. Na política, tem de configurar os detalhes do acionador da API e os parâmetros de entrada necessários para executar a integração. Quando executa a política SetIntegrationRequest, cria um objeto de pedido e guarda-o numa variável de fluxo. O objeto de pedido tem todas as informações necessárias para executar a integração. Nesta fase, a integração ainda não é executada. Para executar a integração, tem de chamar a política IntegrationCallout ou definir um IntegrationEndpoint. A política IntegrationCallout e o IntegrationEndpoint requerem o objeto de pedido para executar a integração.
Esta política é uma política extensível e a utilização desta política pode ter implicações de custo ou utilização, consoante a sua licença do Apigee. Para ver informações sobre os tipos de políticas e as implicações de utilização, consulte Tipos de políticas.
<SetIntegrationRequest>
Especifica a política SetIntegrationRequest.
Valor predefinido | N/A |
Obrigatório? | Obrigatória |
Tipo | Tipo complexo |
Elemento principal | N/A |
Elementos subordinados |
<ApiTrigger> <DisplayName> <IntegrationName> <IntegrationRegion> <Parameters> <ProjectId> <Request> <ScheduleTime> |
A tabela seguinte fornece uma descrição geral dos elementos subordinados do elemento <SetIntegrationRequest>
:
Elemento secundário | Obrigatório? | Descrição |
---|---|---|
<ApiTrigger> |
Obrigatória | Nome do acionador da API a chamar na integração. |
<DisplayName> |
Opcional | Um nome personalizado para a política. |
<IntegrationName> |
Opcional | Nome da integração a executar. |
<IntegrationRegion> |
Obrigatória | Nome da região onde a integração existe. |
<Parameters> |
Opcional | Introduza os parâmetros da integração. |
<ProjectId> |
Opcional | Nome do projeto do Google Cloud que tem a integração que quer executar. |
<Request> |
Opcional | Nome da variável de fluxo para guardar o objeto de pedido. |
<ScheduleTime> |
Opcional | A hora em que a integração tem de 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 seguinte 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 | Predefinição | Obrigatório? | Descrição |
---|---|---|---|
name |
N/A | Obrigatório |
O nome interno da política. O valor do atributo Opcionalmente, use o elemento |
continueOnError |
falso | Opcional | Definido como false para devolver um erro quando uma política falha. Este comportamento é o esperado para a maioria das políticas. Definido como true para que a execução do fluxo continue mesmo depois de uma política falhar. Veja também:
|
enabled |
verdadeiro | Opcional | Defina como true para aplicar a política. Defina como false para desativar a política. A política não é aplicada, mesmo que permaneça anexada a um fluxo. |
async |
falso | Descontinuado | Este atributo foi descontinuado. |
Referência de elemento secundário
Esta secção descreve os elementos subordinados de<SetIntegrationRequest>
.
<DisplayName>
Use em conjunto com o atributo name
para etiquetar a política no editor de proxy da IU de gestão com um nome diferente e mais natural.
O elemento <DisplayName>
é comum a todas as políticas.
Valor predefinido | N/A |
Obrigatório? | Opcional. Se omitir <DisplayName> , é usado o valor do atributo name da política. |
Tipo | String |
Elemento principal | <PolicyElement> |
Elementos subordinados | 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 nem elementos subordinados.
<ProjectId>
Especifica o nome do projeto do Google Cloud.
O Apigee atribui o valor especificado para este elemento à variável de fluxo integration.project.id
Valor predefinido | N/A |
Obrigatório? | Opcional |
Tipo | String |
Elemento principal |
<SetIntegrationRequest> |
Elementos subordinados | Nenhum |
O elemento <ProjectId>
usa a seguinte sintaxe:
Sintaxe
<ProjectId ref="FLOW_VARIABLE_NAME">GOOGLE_CLOUD_PROJECT_ID</ProjectId>
Exemplo
O exemplo seguinte configura a política para usar a variável de fluxo my_projectid_var
para obter o ID do projeto e, se a variável de fluxo não for resolvida no tempo de execução, usar apigee_staging_1
como o ID do projeto:
<ProjectId ref="my_projectid_var">apigee_staging_1</ProjectId>
A tabela seguinte descreve os atributos de <ProjectId>
:
Atributo | Obrigatório? | Tipo | Descrição |
---|---|---|---|
ref |
Opcional | String | Especifica a variável de fluxo a partir da qual o Apigee deve ler o ID do projeto do Google Cloud. Pode definir o elemento <ProjectId> de uma das seguintes formas:
|
<IntegrationName>
Especifica a integração a executar.
O Apigee atribui o valor especificado para este elemento à variável de fluxo integration.name
O nome da integração tem de cumprir os seguintes requisitos de nomenclatura:
- Tem de começar e terminar com letras ou números.
- Não pode ter espaços.
- Não pode ter dois carateres de travessão ou sublinhado consecutivos.
Valor predefinido | N/A |
Obrigatório? | Opcional |
Tipo | String |
Elemento principal |
<SetIntegrationRequest> |
Elementos subordinados | Nenhum |
O elemento <IntegrationName>
usa a seguinte sintaxe:
Sintaxe
<IntegrationName ref="FLOW_VARIABLE_NAME">INTEGRATION_NAME</IntegrationName>
Exemplo
O exemplo seguinte configura a política para usar a variável de fluxo my_integration_ref
para obter o nome da integração e, se a variável de fluxo não for resolvida no tempo de execução, usar integration_1
como o nome da integração:
<IntegrationName ref="my_integration_ref">integration_1</IntegrationName>
A tabela seguinte descreve os atributos de <IntegrationName>
:
Atributo | Obrigatório? | Tipo | Descrição |
---|---|---|---|
ref |
Opcional | String | Especifica a variável de fluxo a partir da qual o Apigee deve ler o nome da integração. Pode definir o elemento <IntegrationName> de uma das seguintes formas:
|
<IntegrationRegion>
Especifica a região onde existe a integração.
Em tempo de execução, o Apigee atribui o valor do elemento à variável de fluxo integration.region
, cria um URL de destino baseado na região e armazena o URL na variável de fluxo integration.target.url
.
O URL de destino baseado na região tem o seguinte formato:
https://integration.region-integrations.googleapis.com
A região de integração tem de ser suportada pela integração de aplicações. Para obter informações sobre as regiões suportadas da integração de aplicações, consulte o artigo Regiões suportadas.
Valor predefinido | N/A |
Obrigatório? | Obrigatória |
Tipo | String |
Elemento principal |
<SetIntegrationRequest> |
Elementos subordinados | Nenhum |
O elemento <IntegrationRegion>
usa a seguinte sintaxe:
Sintaxe
<IntegrationRegion ref="FLOW_VARIABLE_NAME">INTEGRATION_REGION</IntegrationRegion>
Exemplo
O exemplo seguinte configura a política para usar a variável de fluxo my_integration_region_ref
para obter a região de integração e, se a variável de fluxo não for resolvida no tempo de execução, asia-east1
é usada como a região da integração:
<IntegrationRegion ref="my_integration_region_ref">asia-east1</IntegrationRegion>
A tabela seguinte descreve os atributos de <IntegrationRegion>
:
Atributo | Obrigatório? | Tipo | Descrição |
---|---|---|---|
ref |
Opcional | String | Especifica a variável de fluxo a partir da qual o Apigee deve ler a região de integração. Pode definir o elemento <IntegrationRegion> de uma das seguintes formas:
|
<ApiTrigger>
Especifica o acionador da API a executar.
Tem de especificar o nome do acionador da API no formato api_trigger/API_TRIGGER_NAME
.
O Apigee atribui o valor especificado para este elemento à variável de fluxo integration.api.trigger
Se tiver especificado o <IntegrationName>
, apenas o acionador da API dessa integração é
executado. No entanto, se não tiver especificado o <IntegrationName>
, são executadas todas as integrações que
têm o acionador da API especificado.
Valor predefinido | N/A |
Obrigatório? | Obrigatória |
Tipo | String |
Elemento principal |
<SetIntegrationRequest> |
Elementos subordinados | Nenhum |
O elemento <ApiTrigger>
usa a seguinte sintaxe:
Sintaxe
<ApiTrigger ref="FLOW_VARIABLE_NAME">API_TRIGGER_NAME</ApiTrigger>
Exemplo
O exemplo seguinte configura a política para usar a variável de fluxo my_api_trigger_ref
para obter o nome do acionador da API e, se a variável de fluxo não for resolvida no tempo de execução, usar 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 seguinte descreve os atributos de <ApiTrigger>
:
Atributo | Obrigatório? | Tipo | Descrição |
---|---|---|---|
ref |
Opcional | String | Especifica a variável de fluxo a partir da qual o Apigee deve ler o nome do acionador de API. Pode definir o elemento <ApiTrigger> de uma das seguintes formas:
|
<ScheduleTime>
Especifica a hora em que a integração tem de ser executada.
Se a hora for inferior ou igual à hora atual, a integração é executada imediatamente. Tem
de especificar a hora no formato yyyy-mm-ddThh:mm:ssZ
, em que Z é o fuso horário UTC.
Por exemplo, se especificar 2022-01-15T01:30:15Z
, a integração está agendada para ser executada a 15-01-2022 às 01:30:15 UTC. Também pode especificar o fuso horário através de uma diferença para UTC.
Por exemplo, se especificar 2022-01-15T01:30:15-08:00
, a integração é agendada para ser executada a 15-01-2022 às 01:30:15 PST. Para mais informações sobre o formato de hora, consulte o artigo
Representações combinadas de data e hora.
Valor predefinido | N/A |
Obrigatório? | Opcional |
Tipo | String |
Elemento principal |
<SetIntegrationRequest> |
Elementos subordinados | Nenhum |
O elemento <ScheduleTime>
usa a seguinte sintaxe:
Sintaxe
<ScheduleTime>PARAMETER_VALUE</ScheduleTime>
Exemplo
O exemplo seguinte agenda a execução da integração às 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.
Pode especificar parâmetros individuais ou matrizes de parâmetros.
- Para especificar um parâmetro individual, use o elemento
<Parameter>
. - Para especificar uma matriz de parâmetros, use o elemento
<ParameterArray>
.
Valor predefinido | N/A |
Obrigatório? | Opcional |
Tipo | Tipo complexo |
Elemento principal |
<SetIntegrationRequest> |
Elementos subordinados |
<Parameter> <ParameterArray> |
A tabela seguinte descreve os atributos de <Parameters>
:
Atributo | Obrigatório? | Tipo | Descrição |
---|---|---|---|
substitutionVariableChar |
Opcional | Char | Permite-lhe definir delimitadores personalizados para transmitir valores de variáveis de fluxo como argumentos de modelos 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 seguinte 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>
O Apigee trata os elementos <Parameter>
e <ParameterArray>
vazios como valores null
. Por exemplo, as declarações como <Parameter></Parameter>
e <ParameterArray></ParameterArray>
são tratadas como valores null
.
<Parameter>
Especifica um parâmetro de entrada.
Valor predefinido | N/A |
Obrigatório? | Opcional |
Tipo | String |
Elemento principal |
<Parameters> |
Elementos subordinados | Nenhum |
Pode especificar o valor do parâmetro das seguintes formas:
- <Parameter name="my_param" type="string">val</Parameter>: use val como valor do parâmetro. Se val for inválido, o Apigee comunica uma exceção.
- <Parameter name="my_param" type="string" ref="refval"/>: resolve a variável de fluxo refval no momento da execução e usa o respetivo valor. O Apigee comunica uma exceção se o valor refval resolvido for inválido ou se refval não for resolvido.
- <Parameter name="my_param" type="string" ref="refval">val</Parameter>: resolve a variável de fluxo refval no tempo de execução e usa o respetivo valor. O Apigee comunica uma exceção se o valor refval resolvido for inválido. Se refval não for resolvido, o Apigee usa 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 de fluxo como um argumento de modelo no parâmetro. O Apigee resolve a variável de fluxo flowval no tempo de execução e usa o respetivo valor. É comunicada uma exceção se o valor flowval resolvido for inválido. - <Parameter name="my_param" type="json">{"name":"SUBSTITUTION_CHAR flowval SUBSTITUTION_CHAR"}</Parameter>: onde SUBSTITUTION_CHAR denota o valor especificado para o atributo
substitutionVariableChar
do elemento principal<Parameters>
. O Apigee resolve a variável de fluxo flowval no tempo de execução e usa o respetivo valor. É comunicada uma exceção se o valor de 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
O exemplo seguinte declara o parâmetro my_str_param
como uma string e define
o valor como someText
.
<Parameters> <Parameter name="my_str_param" type="string">someText</Parameter> </Parameters>
Exemplo 2
O exemplo seguinte declara o parâmetro my_double_param
como um valor duplo e atribui
o valor da variável de fluxo flow_var
ao parâmetro.
<Parameters> <Parameter name="my_double_param" type="double" ref="flow_var"/> </Parameters>
Exemplo 3
O exemplo seguinte define o valor para 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
for resolvida com êxito, my_int_param_1
é definida como o valor da variável de fluxo. No entanto, se flow_var_1
não conseguir resolver,
my_int_param_1
é definido como 96
.
Exemplo 4
O exemplo seguinte 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
for resolvida com êxito, my_json_param_1
é definida como o valor da variável de fluxo flow_var_1
. No entanto, se a flow_var_1
não conseguir resolver o problema,
my_json_param_1
é definida como {name:"Apple", color:"Red"}
. O parâmetro my_json_param_2
está definido como {name:"Banana", color:"Yellow"}
, uma vez que não existe nenhum atributo ref
especificado.
Exemplo 5
O exemplo seguinte define o valor do parâmetro JSON template_json_param
usando o valor da variável de fluxo transmitido no modelo predefinido.
<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
for resolvida com êxito, template_json_param
é definida como o valor da variável de fluxo flow_var_1
. No entanto, se o flow_var_1
não conseguir resolver, o Apigee aciona uma exceção.
Exemplo 6
O exemplo seguinte define o valor do parâmetro JSON template_json_param
através do 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
for resolvida com êxito, template_json_param
é definida como o valor da variável de fluxo flow_var_1
. No entanto, se o flow_var_1
não conseguir resolver, o Apigee aciona uma exceção.
A tabela seguinte descreve os atributos de <Parameter>
:
Atributo | Obrigatório? | Tipo | Descrição |
---|---|---|---|
name |
Obrigatória | String | Nome do parâmetro. |
type |
Obrigatória | String | Tipo de dados do parâmetro. Os tipos suportados são:
integer , string , boolean ,
double e json . |
ref |
Opcional | String | Especifica a variável de fluxo a partir da qual o Apigee deve ler o valor do parâmetro. O Apigee usa os seguintes critérios para definir o valor do parâmetro:
|
<ParameterArray>
Especifica uma matriz de parâmetros de entrada.
Valor predefinido | N/A |
Obrigatório? | Opcional |
Tipo | Tipo complexo |
Elemento principal |
<Parameters> |
Elementos subordinados |
<Value> |
O elemento <Parameters>
pode ter vários elementos <ParameterArray>
. Para uma matriz de parâmetros, pode definir o valor dos elementos da matriz
especificando o valor real ou especificando uma variável de fluxo no atributo ref
.
Se especificar uma variável de fluxo, os elementos da matriz são definidos com o valor da variável de fluxo.
Os exemplos nesta secção descrevem as várias formas 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 seguinte 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 seguinte 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 seguinte declara my_array_param
como uma matriz booleana e define-a
com 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 com êxito, my_array_param
é definido para os valores da matriz flow_var_1
. No entanto, se o elemento flow_var_1
não for resolvido, a matriz my_array_param
é definida para os valores dos elementos Value
.
Example-4
O exemplo seguinte declara my_array_param
como uma matriz JSON e define-a
com 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 com êxito, my_array_param
é definido para os valores da matriz flow_var_1
. No entanto, se
flow_var_1
não for resolvido, o Apigee comunica uma exceção.
Example-5
O exemplo seguinte declara my_array_param
como uma matriz de strings e define-a
para 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 com êxito, my_array_param
é definido para os valores da matriz flow_var_1
. Apenas se flow_var_1
não conseguir resolver, my_array_param
é definido para os valores especificados nos elementos <Value>
.
A tabela seguinte descreve os atributos de <ParameterArray>
:
Atributo | Obrigatório? | Tipo | Descrição |
---|---|---|---|
name |
Obrigatória | String | Nome da matriz de parâmetros. |
type |
Obrigatória | String | Tipo de dados da matriz de parâmetros. Os tipos suportados são:
integer , string , boolean
e double . |
ref |
Opcional | String | Especifica a variável de fluxo a partir da qual o Apigee deve ler os valores da matriz. O Apigee usa os seguintes critérios para definir o valor do parâmetro:
|
<Value>
Especifica o valor de um elemento de matriz.
Valor predefinido | N/A |
Obrigatório? | Opcional |
Tipo | String |
Elemento principal |
<ParameterArray> |
Elementos subordinados | Nenhum |
Cada elemento da matriz tem de ser um elemento <Value>
separado. Pode especificar o valor das seguintes formas:
- <Value>val</Value>: use val como o valor do elemento. Se val for inválido, o Apigee comunica uma exceção.
- <Value ref="refval"/>: resolve a variável de fluxo refval no tempo de execução e usa o respetivo valor. O Apigee comunica uma exceção se o valor refval resolvido for inválido ou se refval não for resolvido.
- <Value ref="refval">val</Value>: resolve a variável de fluxo refval no momento da execução e usa o respetivo valor. O Apigee comunica uma exceção se o valor refval resolvido for inválido. Se refval não for resolvido, o Apigee usa val como o valor do elemento.
- <Value>val1 $#flowval#$</Value>: use
$#FLOW_VARIABLE_NAME#$
para transmitir valores de variáveis de fluxo como um argumento de modelo em Value. O Apigee resolve a variável de fluxo flowval no tempo de execução e usa o respetivo valor. É comunicada uma exceção 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 seguinte 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 seguinte 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 seguinte 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 com êxito, o valor do elemento da matriz é definido como o valor da variável de fluxo flow_var_1
. No entanto, se flow_var_1
não conseguir resolver,
o valor do elemento da matriz é definido como string_1
.
Exemplo 4
O exemplo seguinte define o valor para o parâmetro de matriz de strings template_strArray_param
através do valor da variável de fluxo transmitido num 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 com êxito, o valor do elemento da matriz é definido como o valor da variável de fluxo flow_var_1
. No entanto, se flow_var_1
não conseguir resolver o problema,
o Apigee gera uma exceção.
A tabela seguinte descreve os atributos de <Value>
:
Atributo | Obrigatório? | Tipo | Descrição |
---|---|---|---|
ref |
Opcional | String | Especifica a variável de fluxo a partir da qual o Apigee deve ler o valor do parâmetro. O Apigee usa os seguintes critérios para definir o valor do parâmetro:
|
<Request>
Especifica o nome da variável de fluxo para guardar o pedido.
Após a execução da política, é criado um novo objeto de mensagem de pedido e o objeto é guardado na variável FLOW_VARIABLE_NAME
, que pode consultar para ler o pedido.
Se não especificar um nome de variável de fluxo, a política guarda o pedido na mensagem de pedido, substituindo a mensagem de pedido existente, se existir.
Valor predefinido | pedido |
Obrigatório? | Opcional |
Tipo | String |
Elemento principal |
<SetIntegrationRequest> |
Elementos subordinados | Nenhum |
O elemento <Request>
usa a seguinte sintaxe:
Sintaxe
<Request>FLOW_VARIABLE_NAME</Request>
Exemplo
O exemplo seguinte guarda o objeto de pedido na variável de fluxo my_request_var
:
<Request>my_request_var</Request>
Códigos de erro
Esta secção descreve os códigos de falhas, as mensagens de erro e as variáveis de falhas definidas pelo Apigee quando esta política aciona um erro. Estas informações são essenciais se estiver a desenvolver regras de falhas para resolver falhas. Para saber mais, consulte o artigo O que precisa de saber acerca dos erros de políticas e o artigo Processamento de falhas.
Erros de tempo de execução
Estes erros podem ocorrer quando a política é executada.
Código de falha | Estado de HTTP | Causa |
---|---|---|
steps.setintegrationrequest.EmptyParameterArray |
500 |
Este erro ocorre quando o elemento |
steps.setintegrationrequest.EmptyParameterArrayValue |
500 |
Este erro ocorre quando o elemento |
steps.setintegrationrequest.InvalidResolvedFlowVariable |
500 |
Este erro ocorre quando a variável de fluxo especificada no atributo
|
steps.setintegrationrequest.MismatchedTypeAndResolvedRef |
500 |
Este erro ocorre quando a variável de fluxo especificada no atributo |
steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArray |
500 |
Este erro ocorre quando a variável de fluxo especificada no atributo |
steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArrayValue |
500 |
Este erro ocorre quando a variável de fluxo especificada no atributo |
steps.setintegrationrequest.RequestVariableNotMessageType |
500 |
Este erro ocorre quando a variável de fluxo especificada pelo elemento Request não é do tipo message. |
steps.setintegrationrequest.RequestVariableNotRequestMessageType |
500 |
Este erro ocorre quando a variável de fluxo especificada pelo elemento Request não é do tipo mensagem de pedido. |
steps.setintegrationrequest.UnresolvedVariable |
500 |
Este erro ocorre quando o Apigee não consegue resolver as variáveis de fluxo especificadas nos elementos
|
Variáveis de falha
Sempre que existem erros de execução numa política, o Apigee gera mensagens de erro. Pode ver estas mensagens de erro na resposta de erro. Muitas vezes, as mensagens de erro geradas pelo sistema podem não ser relevantes no contexto do seu produto. Pode personalizar as mensagens de erro com base no tipo de erro para tornar as mensagens mais significativas.
Para personalizar as mensagens de erro, pode usar regras de falhas ou a política RaiseFault. Para
informações sobre as diferenças entre as regras de falhas e a política RaiseFault, consulte
Regras de falhas vs. a política RaiseFault.
Tem de verificar as condições através do elemento Condition
nas regras de falhas e na política RaiseFault.
O Apigee fornece variáveis de falhas exclusivas para cada política, e os valores das variáveis de falhas são definidos quando uma política aciona erros de tempo de execução.
Ao usar estas variáveis, pode verificar condições de erro específicas e tomar as medidas adequadas. Para mais informações sobre a verificação das condições de erro, consulte o artigo Criar condições.
A tabela seguinte descreve as variáveis de falha específicas desta política.
Variáveis | Onde | Exemplo |
---|---|---|
fault.name |
O fault.name pode corresponder a qualquer uma das falhas indicadas na tabela Erros de tempo 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 especificado pelo utilizador da política que gerou a falha. | SetIntegrationRequest.set-integration-request-1.failed = true |
Tópicos relacionados
Se quiser saber mais sobre a funcionalidade Application Integration, consulte o artigo Vista geral da Application Integration