Esta página aplica-se ao Apigee e ao Apigee Hybrid.
Ver documentação do
Apigee Edge.
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>
This element has the following attributes that are common to all policies:
| Attribute | Default | Required? | Description |
|---|---|---|---|
name |
N/A | Required |
The internal name of the policy. The value of the Optionally, use the |
continueOnError |
false | Optional | Set to false to return an error when a policy fails. This is expected behavior for
most policies. Set to true to have flow execution continue even after a policy
fails. See also:
|
enabled |
true | Optional | Set to true to enforce the policy. Set to false to turn off the
policy. The policy will not be enforced even if it remains attached to a flow. |
async |
false | Deprecated | This attribute is deprecated. |
Referência de elemento secundário
Esta secção descreve os elementos subordinados 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.
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 traç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 de 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 de 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
substitutionVariableChardo 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 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 flow_var_1. 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 é definido como {name:"Apple", color:"Red"}. O parâmetro my_json_param_2 está definido como {name:"Banana", color:"Yellow"}, uma vez que não foi especificado nenhum atributo ref.
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
flow_var_1 não conseguir resolver, 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 conseguir resolver, 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 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.
- <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 de 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 de 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 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
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 |
Tópicos relacionados
Se quiser saber mais sobre a funcionalidade Application Integration, consulte o artigo Vista geral da Application Integration