Cette page s'applique à Apigee et à Apigee hybrid.
Consultez la documentation d'Apigee Edge.
Présentation
La règle SetIntegrationRequest vous permet de créer un objet de requête pour une intégration que vous souhaitez exécuter. Dans la règle, vous devez configurer les détails du déclencheur d'API et les paramètres d'entrée requis pour exécuter l'intégration. Lorsque vous exécutez la règle SetIntegrationRequest, elle crée un objet de requête et l'enregistre dans une variable de flux. L'objet de la requête contient toutes les informations requises pour exécuter l'intégration. À ce stade, l'intégration n'est toujours pas exécutée. Pour exécuter l'intégration, vous devez appeler la règle IntegrationCallout ou définir un IntegrationEndpoint. La règle IntegrationCallout et IntegrationEndpoint requièrent tous deux l'objet de la requête pour exécuter l'intégration.
Cette règle est une règle extensible et son utilisation peut avoir des conséquences sur le coût ou l'utilisation, en fonction de votre licence Apigee. Pour en savoir plus sur les types de règles et les implications en termes d'utilisation, consultez la section Types de règles.
<SetIntegrationRequest>
Spécifie la règle SetIntegrationRequest.
Valeur par défaut | N/A |
Obligatoire ? | Obligatoire |
Type | Type complexe |
Élément parent | N/A |
Éléments enfants |
<ApiTrigger> <DisplayName> <IntegrationName> <IntegrationRegion> <Parameters> <ProjectId> <Request> <ScheduleTime> |
Le tableau suivant fournit une description détaillée des éléments enfants de l'élément <SetIntegrationRequest>
:
Élément enfant | Obligatoire ? | Description |
---|---|---|
<ApiTrigger> |
Obligatoire | Nom du déclencheur d'API à appeler dans l'intégration. |
<DisplayName> |
Facultatif | Nom personnalisé de la règle. |
<IntegrationName> |
Facultatif | Nom de l'intégration à exécuter. |
<IntegrationRegion> |
Obligatoire | Nom de la région dans laquelle se trouve l'intégration. |
<Parameters> |
Facultatif | Paramètres d'entrée de l'intégration. |
<ProjectId> |
Facultatif | Nom du projet Google Cloud contenant l'intégration que vous souhaitez exécuter. |
<Request> |
Facultatif | Nom de la variable de flux pour enregistrer l'objet de la requête. |
<ScheduleTime> |
Facultatif | Heure à laquelle l'intégration doit être exécutée. |
La règle SetIntegrationRequest utilise la syntaxe suivante :
Syntaxe
<?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>
Exemple
L'exemple suivant montre la définition de la règle 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>
Cet élément possède les attributs suivants qui sont communs à toutes les règles :
Attribut | Par défaut | Obligatoire ? | Description |
---|---|---|---|
name |
ND | Obligatoire |
Nom interne de la règle. La valeur de l'attribut Vous pouvez également utiliser l'élément |
continueOnError |
faux | Facultatif | Définissez sur false pour afficher une erreur en cas d'échec d'une règle. Il s'agit du comportement attendu pour la plupart des règles. Définissez sur true pour que l'exécution du flux se poursuive même après l'échec d'une règle. Voir aussi :
|
enabled |
true | Facultatif | Définissez sur true pour appliquer la règle. Définissez sur false pour désactiver la règle. La règle ne sera pas appliquée même si elle reste associée à un flux. |
async |
faux | Obsolète | Cet attribut est obsolète. |
Référence d'élément enfant
Cette section décrit les éléments enfants de<SetIntegrationRequest>
.
<DisplayName>
Utilisez-le, en plus de l'attribut name
, pour appliquer un libellé à la règle dans l'éditeur de proxys de l'interface de gestion en utilisant un nom différent et plus naturel.
L'élément <DisplayName>
est commun à toutes les règles.
Valeur par défaut | N/A |
Obligatoire ? | Facultatif. Si vous omettez <DisplayName> , la valeur de l'attribut name de la règle est utilisée. |
Type | Chaîne |
Élément parent | <PolicyElement> |
Éléments enfants | Aucun |
L'élément <DisplayName>
utilise la syntaxe suivante :
Syntaxe
<PolicyElement> <DisplayName>POLICY_DISPLAY_NAME</DisplayName> ... </PolicyElement>
Exemple
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
L'élément <DisplayName>
ne comporte aucun attribut ni élément enfant.
<ProjectId>
Spécifie le nom du projet Google Cloud.
Apigee attribue la valeur que vous spécifiez pour cet élément à la variable de flux integration.project.id
.
Valeur par défaut | N/A |
Obligatoire ? | Facultatif |
Type | Chaîne |
Élément parent |
<SetIntegrationRequest> |
Éléments enfants | Aucun |
L'élément <ProjectId>
utilise la syntaxe suivante :
Syntaxe
<ProjectId ref="FLOW_VARIABLE_NAME">GOOGLE_CLOUD_PROJECT_ID</ProjectId>
Exemple
L'exemple suivant configure la règle pour utiliser la variable de flux my_projectid_var
afin de récupérer l'ID de projet. Si la variable de flux ne parvient pas à être résolue au moment de l'exécution, utilisez apigee_staging_1
comme ID de projet :
<ProjectId ref="my_projectid_var">apigee_staging_1</ProjectId>
Le tableau suivant décrit les attributs de <ProjectId>
:
Attribut | Obligatoire ? | Type | Description |
---|---|---|---|
ref |
Facultatif | Chaîne | Spécifie la variable de flux à partir de laquelle Apigee doit lire l'ID du projet Google Cloud. Vous pouvez définir l'élément <ProjectId> de l'une des manières suivantes :
|
<IntegrationName>
Spécifie l'intégration à exécuter.
Apigee attribue la valeur que vous spécifiez pour cet élément à la variable de flux integration.name
.
Le nom de l'intégration doit suivre les règles de dénomination suivantes :
- Doit commencer et se terminer par une lettre ou un chiffre.
- Ne peut pas comporter d'espaces.
- Deux tirets ou traits de soulignement ne peuvent pas être consécutifs.
Valeur par défaut | N/A |
Obligatoire ? | Facultatif |
Type | Chaîne |
Élément parent |
<SetIntegrationRequest> |
Éléments enfants | Aucun |
L'élément <IntegrationName>
utilise la syntaxe suivante :
Syntaxe
<IntegrationName ref="FLOW_VARIABLE_NAME">INTEGRATION_NAME</IntegrationName>
Exemple
L'exemple suivant configure la règle pour utiliser la variable de flux my_integration_ref
afin de récupérer le nom de l'intégration. Si la variable de flux ne parvient pas à être résolue au moment de l'exécution, utilisez integration_1
comme nom d'intégration :
<IntegrationName ref="my_integration_ref">integration_1</IntegrationName>
Le tableau suivant décrit les attributs de <IntegrationName>
:
Attribut | Obligatoire ? | Type | Description |
---|---|---|---|
ref |
Facultatif | Chaîne | Spécifie la variable de flux à partir de laquelle Apigee doit lire le nom de l'intégration. Vous pouvez définir l'élément <IntegrationName> de l'une des manières suivantes :
|
<IntegrationRegion>
Spécifie la région où l'intégration existe.
Lors de l'exécution, Apigee attribue la valeur de l'élément à la variable de flux integration.region
, crée une URL cible basée sur la région et stocke l'URL dans la variable de flux integration.target.url
.
L'URL cible basée sur la région est au format suivant : https://integration.region-integrations.googleapis.com
La région d'intégration doit être compatible avec l'intégration Apigee. Pour en savoir plus sur les régions compatibles avec l'intégration Apigee, consultez la section Régions où le service est disponible.
Valeur par défaut | N/A |
Obligatoire ? | Obligatoire |
Type | Chaîne |
Élément parent |
<SetIntegrationRequest> |
Éléments enfants | Aucun |
L'élément <IntegrationRegion>
utilise la syntaxe suivante :
Syntaxe
<IntegrationRegion ref="FLOW_VARIABLE_NAME">INTEGRATION_REGION</IntegrationRegion>
Exemple
L'exemple suivant configure la règle pour utiliser la variable de flux my_integration_region_ref
afin de récupérer la région d'intégration. Si la variable de flux ne parvient pas à être résolue au moment de l'exécution, asia-east1
est utilisé comme région de l'intégration.
<IntegrationRegion ref="my_integration_region_ref">asia-east1</IntegrationRegion>
Le tableau suivant décrit les attributs de <IntegrationRegion>
:
Attribut | Obligatoire ? | Type | Description |
---|---|---|---|
ref |
Facultatif | Chaîne | Spécifie la variable de flux à partir de laquelle Apigee doit lire la région de l'intégration. Vous pouvez définir l'élément <IntegrationRegion> de l'une des manières suivantes :
|
<ApiTrigger>
Spécifie le déclencheur d'API à exécuter.
Vous devez spécifier le nom du déclencheur API au format api_trigger/API_TRIGGER_NAME
.
Apigee attribue la valeur que vous spécifiez pour cet élément à la variable de flux integration.api.trigger
.
Si vous avez spécifié <IntegrationName>
, seul le déclencheur d'API de cette intégration est exécuté. Toutefois, si vous n'avez pas spécifié <IntegrationName>
, toutes les intégrations portant le déclencheur d'API spécifié sont exécutées.
Valeur par défaut | N/A |
Obligatoire ? | Obligatoire |
Type | Chaîne |
Élément parent |
<SetIntegrationRequest> |
Éléments enfants | Aucun |
L'élément <ApiTrigger>
utilise la syntaxe suivante :
Syntaxe
<ApiTrigger ref="FLOW_VARIABLE_NAME">API_TRIGGER_NAME</ApiTrigger>
Exemple
L'exemple suivant configure la règle pour utiliser la variable de flux my_api_trigger_ref
afin de récupérer le nom du déclencheur d'API. Si la variable de flux ne parvient pas à être résolue au moment de l'exécution, utilisez api_trigger/API-Trigger-2
comme nom de déclencheur d'API :
<ApiTrigger ref="my_api_trigger_ref">api_trigger/API-Trigger-2</ApiTrigger>
Le tableau suivant décrit les attributs de <ApiTrigger>
:
Attribut | Obligatoire ? | Type | Description |
---|---|---|---|
ref |
Facultatif | Chaîne | Spécifie la variable de flux à partir de laquelle Apigee doit lire le nom du déclencheur d'API. Vous pouvez définir l'élément <ApiTrigger> de l'une des manières suivantes :
|
<ScheduleTime>
Indique l'heure à laquelle l'intégration doit s'exécuter.
Si la heure est inférieure ou égale à l'heure actuelle, l'intégration s'exécute immédiatement. Vous devez spécifier l'heure au format yyyy-mm-ddThh:mm:ssZ
, où Z est le fuseau horaire UTC.
Par exemple, si vous spécifiez 2022-01-15T01:30:15Z
, l'intégration est planifiée pour s'exécuter le 15-1-2022 à 1:30:15 UTC. Vous pouvez également spécifier le fuseau horaire à l'aide d'un décalage par rapport à l'heure UTC.
Par exemple, si vous spécifiez 2022-01-15T01:30:15-08:00
, l'intégration est planifiée pour s'exécuter le 15-1-2022 à 1:30:15 PST. Pour en savoir plus sur le format de l'heure, consultez la section Représentations de la date et de l'heure combinées.
Valeur par défaut | N/A |
Obligatoire ? | Facultatif |
Type | Chaîne |
Élément parent |
<SetIntegrationRequest> |
Éléments enfants | Aucun |
L'élément <ScheduleTime>
utilise la syntaxe suivante :
Syntaxe
<ScheduleTime>PARAMETER_VALUE</ScheduleTime>
Exemple
L'exemple suivant planifie l'intégration à exécuter à 2022-01-15T01:30:15Z
:
<ScheduleTime>2022-01-15T01:30:15Z</ScheduleTime>
<Parameters>
Spécifie les paramètres d'entrée requis pour exécuter l'intégration.
Vous pouvez spécifier des paramètres individuels ou des tableaux de paramètres.
- Pour spécifier un paramètre individuel, utilisez l'élément
<Parameter>
. - Pour spécifier un tableau de paramètres, utilisez l'élément
<ParameterArray>
.
Valeur par défaut | N/A |
Obligatoire ? | Facultatif |
Type | Type complexe |
Élément parent |
<SetIntegrationRequest> |
Éléments enfants |
<Parameter> <ParameterArray> |
Le tableau suivant décrit les attributs de <Parameters>
:
Attribut | Obligatoire ? | Type | Description |
---|---|---|---|
substitutionVariableChar |
Facultatif | Caractère | Permet de définir des délimiteurs personnalisés pour transmettre des valeurs de variable de flux sous forme d'argument de modèle dans l'élément enfant <Parameter> .
|
L'élément <Parameters>
utilise la syntaxe suivante :
Syntaxe
<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>
Exemple
L'exemple suivant initialise le paramètre my_str_param
et le tableau de paramètres my_array_param
:
<Parameters substitutionVariableChar="#"> <Parameter name="my_str_param" type="string" ref="flow_var_1">someText</Parameter> <Parameter name="strVar" type="string">#flowvar1#</Parameter> <ParameterArray name="my_array_param" type="integer" ref="flow_var_2"> <Value>1</Value> <Value ref="flow_var_3"/> <Value ref="flow_var_4">3</Value> </ParameterArray> </Parameters>
Apigee traite les éléments vides <Parameter>
et <ParameterArray>
comme des valeurs null
. Par exemple, les déclarations telles que <Parameter></Parameter>
et <ParameterArray></ParameterArray>
sont traitées comme des valeurs null
.
<Parameter>
Spécifie un paramètre d'entrée.
Valeur par défaut | N/A |
Obligatoire ? | Facultatif |
Type | Chaîne |
Élément parent |
<Parameters> |
Éléments enfants | Aucun |
Vous pouvez spécifier la valeur du paramètre comme suit :
- <Parameter name="my_param" type="string">val</Parameter> : Utilise val comme valeur de paramètre. Si val n'est pas valide, Apigee signale une exception.
- <Parameter name="my_param" type="string" ref="refval"/> : résout la variable de flux refval au moment de l'exécution et utilise sa valeur. Apigee signale une exception si la valeur refval résolue n'est pas valide ou si la valeur refval est non résolue.
- <Parameter name="my_param" type="string" ref="refval">val</Parameter>: résout la variable de flux refval au moment de l'exécution et utilise sa valeur. Apigee signale une exception si la valeur refval résolue n'est pas valide. Si refval n'est pas résolu, Apigee utilise val comme valeur de paramètre.
- <Parameter name="my_param" type="json">{"name":"$#flowval#$"}</Parameter> : utilise
$#FLOW_VARIABLE_NAME#$
pour transmettre à l'objet Parameter des valeurs de variable de flux sous forme d'argument de modèle. Apigee résout la variable de flux flowval au moment de l'exécution et utilise sa valeur. Une exception est signalée si la valeur flowval résolue n'est pas valide. - <Parameter name="my_param" type="json">{"name":"SUBSTITUTION_CHAR flowval SUBSTITUTION_CHAR"}</Parameter> : où SUBSTITUTION_CHAR désigne la valeur spécifiée pour l'attribut
substitutionVariableChar
de l'élément parent<Parameters>
. Apigee résout la variable de flux flowval au moment de l'exécution et utilise sa valeur. Une exception est signalée si la valeur flowval résolue n'est pas valide.
L'élément <Parameter>
utilise la syntaxe suivante :
Syntaxe
<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>
Exemple 1
L'exemple suivant déclare le paramètre my_str_param
sous forme de chaîne et définit la valeur sur someText
.
<Parameters> <Parameter name="my_str_param" type="string">someText</Parameter> </Parameters>
Exemple 2
L'exemple suivant déclare le paramètre my_double_param
en tant que double et attribue la valeur de la variable de flux flow_var
au paramètre.
<Parameters> <Parameter name="my_double_param" type="double" ref="flow_var"/> </Parameters>
Exemple 3
L'exemple suivant définit la valeur sur le paramètre entier my_int_param_1
.
<Parameters> <Parameter name="my_int_param_1" type="integer" ref="flow_var_1">96</Parameter> </Parameters>
Dans cet exemple, si la résolution de la variable de flux flow_var_1
aboutit, my_int_param_1
est défini sur la valeur de la variable de flux. Toutefois, si la résolution de flow_var_1
échoue, my_int_param_1
est défini sur 96
.
Exemple 4
L'exemple suivant définit des valeurs pour les paramètres JSON my_json_param_1
et 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>
Dans cet exemple, si la résolution de la variable de flux flow_var_1
aboutit, my_json_param_1
est défini sur la valeur de la variable de flux flow_var_1
. Toutefois, si la résolution de flow_var_1
échoue, my_json_param_1
est défini sur {name:"Apple", color:"Red"}
. Le paramètre my_json_param_2
est défini sur {name:"Banana", color:"Yellow"}
, car aucun attribut ref
n'est spécifié.
Exemple 5
L'exemple suivant définit la valeur du paramètre JSON template_json_param
à l'aide de la valeur de variable de flux transmise dans un modèle par défaut.
<Parameters> <Parameter name="template_json_param" type="json">{"name":"$#flow_var_1#$"}</Parameter> </Parameters>
Dans cet exemple, si la résolution de la variable de flux flow_var_1
aboutit, template_json_param
est défini sur la valeur de la variable de flux flow_var_1
. Toutefois, si la résolution de flow_var_1
échoue, Apigee génère une exception.
Exemple 6
L'exemple suivant définit la valeur du paramètre JSON template_json_param
à l'aide de l'attribut substitutionVariableChar.
<Parameters substitutionVariableChar="#"> <Parameter name="template_json_param" type="json">{"name":"#flow_var_1#"}</Parameter> </Parameters>
Dans cet exemple, si la résolution de la variable de flux flow_var_1
aboutit, template_json_param
est défini sur la valeur de la variable de flux flow_var_1
. Toutefois, si la résolution de flow_var_1
échoue, Apigee génère une exception.
Le tableau suivant décrit les attributs de <Parameter>
:
Attribut | Obligatoire ? | Type | Description |
---|---|---|---|
name |
Obligatoire | Chaîne | Nom du paramètre. |
type |
Obligatoire | Chaîne | Type de données du paramètre. Les types acceptés sont integer , string , boolean , double et json . |
ref |
Facultatif | Chaîne | Spécifie la variable de flux à partir de laquelle Apigee doit lire la valeur du paramètre. Apigee utilise les critères suivants pour définir la valeur du paramètre :
|
<ParameterArray>
Spécifie un tableau de paramètres d'entrée.
Valeur par défaut | N/A |
Obligatoire ? | Facultatif |
Type | Type complexe |
Élément parent |
<Parameters> |
Éléments enfants |
<Value> |
L'élément <Parameters>
peut contenir plusieurs éléments <ParameterArray>
. Pour un tableau de paramètres, vous pouvez définir la valeur des éléments du tableau en spécifiant la valeur réelle ou en spécifiant une variable de flux dans l'attribut ref
.
Si vous spécifiez une variable de flux, les éléments du tableau sont définis sur la valeur de la variable de flux.
Les exemples de cette section décrivent les différentes manières de configurer l'élément <ParameterArray>
.
L'élément <ParameterArray>
utilise la syntaxe suivante :
Syntaxe
<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
L'exemple suivant déclare my_array_param
en tant que tableau d'entiers et définit la valeur des éléments du tableau sur 1
, 2
et 3
:
<Parameters> <ParameterArray name="my_array_param" type="integer"> <Value>1</Value> <Value>2</Value> <Value>3</Value> </ParameterArray> <Parameters/>
Example-2
L'exemple suivant déclare my_array_param
en tant que tableau double où :
- Le premier élément est défini sur la valeur de la variable de flux
flow_var_1
. - Le deuxième élément est défini sur
3.0
.
<Parameters> <ParameterArray name="my_array_param" type="double"> <Value ref="flow_var_1"/> <Value>3.0</Value> </ParameterArray> <Parameters/>
Example-3
L'exemple suivant déclare my_array_param
en tant que tableau booléen et le définit sur la valeur de la variable de flux 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/>
Dans cet exemple, si la résolution de flow_var_1
aboutit, my_array_param
est défini sur les valeurs du tableau flow_var_1
. Toutefois, si flow_var_1
ne peut pas être résolu, le tableau my_array_param
est défini sur les valeurs des éléments Value
.
Example-4
L'exemple suivant déclare my_array_param
en tant que tableau JSON et le définit sur la valeur de la variable de flux flow_var_1
.
<Parameters> <ParameterArray name="my_array_param" type="json" ref="flow_var_1"/> <Parameters/>
Dans cet exemple, si la résolution de flow_var_1
aboutit, my_array_param
est défini sur les valeurs du tableau flow_var_1
. Toutefois, si flow_var_1
ne parvient pas à être résolu, Apigee signale une exception.
Example-5
L'exemple suivant déclare my_array_param
en tant que tableau de chaînes et le définit sur les valeurs de la variable de flux 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/>
Dans cet exemple, si la résolution de flow_var_1
aboutit, my_array_param
est défini sur les valeurs du tableau flow_var_1
. Seulement si la résolution de flow_var_1
échoue, my_array_param
est défini sur les valeurs spécifiées dans les éléments <Value>
.
Le tableau suivant décrit les attributs de <ParameterArray>
:
Attribut | Obligatoire ? | Type | Description |
---|---|---|---|
name |
Obligatoire | Chaîne | Nom du tableau de paramètres. |
type |
Obligatoire | Chaîne | Type de données du tableau de paramètres. Les types acceptés sont integer , string , boolean et double . |
ref |
Facultatif | Chaîne | Spécifie la variable de flux à partir de laquelle Apigee doit lire les valeurs du tableau. Apigee utilise les critères suivants pour définir la valeur du paramètre :
|
<Value>
Spécifie la valeur d'un élément de tableau.
Valeur par défaut | N/A |
Obligatoire ? | Facultatif |
Type | Chaîne |
Élément parent |
<ParameterArray> |
Éléments enfants | Aucun |
Chaque élément du tableau doit être un élément <Value>
distinct. Vous pouvez spécifier la valeur comme suit :
- <Value>val</Value> : utilise val comme valeur de l'élément. Si val n'est pas valide, Apigee signale une exception.
- <Value ref="refval"/> : résout la variable de flux refval au moment de l'exécution et utilise sa valeur. Apigee signale une exception si la valeur refval résolue n'est pas valide ou si la valeur refval est non résolue.
- <Value ref="refval">val</Value> : résout la variable de flux refval au moment de l'exécution et utilise sa valeur. Apigee signale une exception si la valeur refval résolue n'est pas valide. Si refval n'est pas résolu, Apigee utilise val comme valeur de l'élément.
- <Value>val1 $#flowval#$</Value> : utilise
$#FLOW_VARIABLE_NAME#$
pour transmettre à l'objet Value les valeurs des variables de flux sous forme d'argument de modèle. Apigee résout la variable de flux flowval au moment de l'exécution et utilise sa valeur. Une exception est signalée si la valeur flowval résolue n'est pas valide.
L'élément <Value>
utilise la syntaxe suivante :
Syntaxe
<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>
Exemple 1
L'exemple suivant déclare my_array_param
en tant que tableau de paramètres entiers avec les valeurs 1
, 2
et 3
:
<ParameterArray name="my_array_param" type="integer"> <Value>1</Value> <Value>2</Value> <Value>3</Value> </ParameterArray>
Exemple 2
L'exemple suivant déclare my_array_param
en tant que tableau de paramètres de chaîne avec les valeurs des variables de flux flow_var_1
et flow_var_2
:
<ParameterArray name="my_array_param" type="string"> <Value ref="flow_var_1"/> <Value ref="flow_var_2"/> </ParameterArray>
Exemple 3
L'exemple suivant déclare my_array_param
en tant que tableau de paramètres de chaîne :
<ParameterArray name="my_array_param" type="string"> <Value ref="flow_var_1">string_1</Value> <Value ref="flow_var_2">string_2</Value> </ParameterArray>
Dans cet exemple, si la résolution de la variable de flux aboutit, la valeur d'élément du tableau est définie sur la valeur de la variable de flux flow_var_1
. Toutefois, si la résolution de flow_var_1
échoue, la valeur d'élément du tableau est définie sur string_1
.
Exemple 4
L'exemple suivant définit la valeur du paramètre de tableau de chaînes template_strArray_param
à l'aide de la valeur de variable de flux transmise dans un modèle.
<Parameters> <ParameterArray name="template_strArray_param" type="string"> <Value>apple $#flow_var_1#$</Value> </ParameterArray> </Parameters>
Dans cet exemple, si la résolution de la variable de flux aboutit, la valeur d'élément du tableau est définie sur la valeur de la variable de flux flow_var_1
. Toutefois, si la résolution de flow_var_1
échoue, Apigee génère une exception.
Le tableau suivant décrit les attributs de <Value>
:
Attribut | Obligatoire ? | Type | Description |
---|---|---|---|
ref |
Facultatif | Chaîne | Spécifie la variable de flux à partir de laquelle Apigee doit lire la valeur du paramètre. Apigee utilise les critères suivants pour définir la valeur du paramètre :
|
<Request>
Spécifie le nom de la variable de flux pour enregistrer la requête.
Une fois la règle exécutée, elle crée un objet de message de requête et l'enregistre dans la variable FLOW_VARIABLE_NAME
que vous pouvez interroger pour lire la requête.
Si vous ne spécifiez pas de nom de variable de flux, la règle enregistre la requête dans le message de requête, en remplaçant le message de requête existant, le cas échéant.
Valeur par défaut | requête |
Obligatoire ? | Facultatif |
Type | Chaîne |
Élément parent |
<SetIntegrationRequest> |
Éléments enfants | Aucun |
L'élément <Request>
utilise la syntaxe suivante :
Syntaxe
<Request>FLOW_VARIABLE_NAME</Request>
Exemple
L'exemple suivant enregistre l'objet de la requête dans la variable de flux my_request_var
:
<Request>my_request_var</Request>
Codes d'erreur
Cette section décrit les codes d'erreur, les messages d'erreur et les variables d'erreur définies par Apigee lorsque cette règle déclenche une erreur. Ces informations sont essentielles si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause |
---|---|---|
steps.setintegrationrequest.EmptyParameterArray |
500 |
Cette erreur se produit lorsque l'élément |
steps.setintegrationrequest.EmptyParameterArrayValue |
500 |
Cette erreur se produit lorsque l'élément |
steps.setintegrationrequest.InvalidResolvedFlowVariable |
500 |
Cette erreur se produit lorsque la variable de flux spécifiée dans l'attribut
|
steps.setintegrationrequest.MismatchedTypeAndResolvedRef |
500 |
Cette erreur se produit lorsque la variable de flux spécifiée dans l'attribut |
steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArray |
500 |
Cette erreur se produit lorsque la variable de flux spécifiée dans l'attribut |
steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArrayValue |
500 |
Cette erreur se produit lorsque la variable de flux spécifiée dans l'attribut |
steps.setintegrationrequest.RequestVariableNotMessageType |
500 |
Cette erreur se produit lorsque la variable de flux spécifiée par l'élément Request n'est pas de type message. |
steps.setintegrationrequest.RequestVariableNotRequestMessageType |
500 |
Cette erreur se produit lorsque la variable de flux spécifiée par l'élément Request n'est pas de type Message de requête. |
steps.setintegrationrequest.UnresolvedVariable |
500 |
Cette erreur se produit lorsqu'Apigee ne peut pas résoudre les variables de flux spécifiées dans les éléments |
Variables de panne
Chaque fois qu'une règle comporte des erreurs d'exécution, Apigee génère des messages d'erreur. Vous pouvez afficher ces messages d'erreur dans la réponse d'erreur. Souvent, les messages d'erreur générés par le système peuvent ne pas être pertinents dans le contexte de votre produit. Vous pouvez personnaliser les messages d'erreur en fonction du type d'erreur pour rendre les messages plus significatifs.
Pour personnaliser les messages d'erreur, vous pouvez utiliser des règles d'erreur ou la règle RaiseFault. Pour en savoir plus sur les différences entre les règles d'erreur et la règle RaiseFault, consultez la section Règles d'erreur et règle RaiseFault.
Vous devez vérifier les conditions à l'aide de l'élément Condition
dans les règles d'erreur et dans la règle RaiseFault.
Apigee fournit des variables d'erreur propres à chaque règle et les valeurs des variables d'erreur sont définies lorsqu'une règle déclenche des erreurs d'exécution.
En utilisant ces variables, vous pouvez vérifier des conditions d'erreur spécifiques et prendre les mesures appropriées. Pour en savoir plus sur la vérification des conditions d'erreur, consultez la page Conditions de création.
Le tableau suivant décrit les variables d'erreur spécifiques à cette règle.
Variables | Où : | Exemple |
---|---|---|
fault.name |
L'élément fault.name peut correspondre à n'importe quelle erreur affichée dans le tableau Erreurs d'exécution.
Le nom d'erreur est la dernière partie du code d'erreur. |
fault.name Matches "UnresolvedVariable" |
SetIntegrationRequest.POLICY_NAME.failed |
POLICY_NAME est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | SetIntegrationRequest.set-integration-request-1.failed = true |
Articles associés
Pour en savoir plus sur la fonctionnalité Application Integration, consultez la présentation d'Application Integration.