Présentation
La règle ReadPropertySet lit les ensembles de propriétés et renseigne la variable de flux avec les résultats.
Cette règle est une règle standard qui peut être déployée sur n'importe quel type d'environnement. Pour en savoir plus sur les types de règles et la disponibilité avec chaque type d'environnement, consultez la section Types de règles.
Élément <ReadPropertySet>
Définit une règle ReadPropertySet.
Valeur par défaut | Consultez l'onglet Règles par défaut ci-dessous. |
Obligatoire ? | Obligatoire |
Type | Objet complexe |
Élément parent | N/A |
Éléments enfants |
<Read> |
L'élément <ReadPropertySet>
utilise la syntaxe suivante :
Syntaxe
L'élément <ReadPropertySet>
utilise la syntaxe suivante :
<ReadPropertySet name="read-property-set"> <Read> <Name ref="set-ref">property-set-name</Name> <Key ref="key-ref">key-name</Key> <AssignTo>var1</AssignTo> <DefaultValue>default-value</DefaultValue> </Read> ... <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ReadPropertySet>
Règle par défaut
L'exemple suivant montre les paramètres par défaut lorsque vous ajoutez une règle ReadPropertySet à votre flux dans l'interface utilisateur d'Apigee :
<ReadPropertySet name="read-property-set"> <Read> <Name ref="set-ref">property-set-name</Name> <Key ref="key-ref">key-name</Key> <AssignTo>var1</AssignTo> <DefaultValue>default-value</DefaultValue> </Read> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ReadPropertySet>
Lorsque vous insérez une nouvelle règle ReadPropertySet dans l'interface utilisateur d'Apigee, le modèle contient des bouchons pour toutes les opérations possibles. Vous trouverez ci-dessous des informations sur les éléments requis.
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. |
Le tableau suivant fournit une description détaillée des éléments enfants de <ReadPropertySet>
:
Élément enfant | Obligatoire ? | Description |
---|---|---|
<Read> |
Obligatoire | Lit et résout une variable d'ensemble de propriétés et la définit sur une variable de flux spécifiée. |
<IgnoreUnresolvedVariables> |
Facultatif | Détermine si le traitement s'arrête lorsqu'un ensemble de propriétés n'est pas résolu. |
Exemple
Cette section fournit un exemple utilisant <ReadPropertySet>
.
Exemple
Cet exemple utilise <ReadPropertySet>
pour obtenir propertyset.environment.name.request.headers.api-version
et l'attribuer à target_url
. Si la valeur de l'ensemble de propriétés n'est pas obtenue, https://httpbin.org/get
est utilisé à la place.
<ReadPropertySet name="read-property-set"> <Read> <Name ref="set-ref">environment.name</Name> <Key ref="key-ref">request.headers.api-version</Key> <AssignTo>target_url</AssignTo> <DefaultValue>https://httpbin.org/get</DefaultValue> </Read> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> </ReadPropertySet>
Référence d'élément enfant
Cette section décrit les éléments enfants de <ReadPropertySet>
.
<Read>
Résout une variable d'ensemble de propriétés et définit le résultat dans une variable de flux.
L'élément <Read>
spécifie la variable d'ensemble de propriétés à résoudre et la variable de flux sur laquelle définir cette valeur. Il inclut également une valeur par défaut facultative, utilisée en cas de définition de propriété non résolue. Vous pouvez inclure plusieurs éléments <Read>
dans une seule règle <ReadPropertySet>
.
Valeur par défaut | N/A |
Obligatoire ? | Facultatif |
Type | Type complexe |
Élément parent |
<ReadPropertySet>
|
Éléments enfants |
<Name> <Key> <AssignTo> <DefaultValue> |
L'élément <Read>
utilise la syntaxe suivante :
Syntaxe
<Read> <Name ref="set-ref">property-set-name</Name> <Key ref="key-ref">key-name</Key> <AssignTo>var1</AssignTo> <DefaultValue>default-value</DefaultValue> </Read>
Exemple
Cet exemple utilise <ReadPropertySet>
pour obtenir propertyset.environment.name.request.headers.api-version
et l'attribuer à target_url
. Si la valeur de l'ensemble de propriétés n'est pas obtenue, https://httpbin.org/get
est utilisé à la place.
<ReadPropertySet name="read-property-set"> <Read> <Name ref="environment.name">my-property-set-name</Name> <Key ref="request.headers.api-version">my-property-set-key</Key> <AssignTo>target_url</AssignTo> <DefaultValue>https://httpbin.org/get</DefaultValue> </Read> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> </ReadPropertySet>
Le tableau suivant fournit une description détaillée des éléments enfants de <Read>
.
Élément enfant | Obligatoire ? | Description |
---|---|---|
<Name> |
Obligatoire | Chaîne Ensemble de propriété à lire. Indiquez la ref , la valeur ou les deux.
Apigee tente d'abord de résoudre le
|
<Key> |
Obligatoire | Chaîne Clé de l'ensemble de propriétés utilisé lors de la résolution de la variable. Indiquez la ref , la valeur ou les deux.
Apigee tente d'abord de résoudre le
|
<AssignTo> |
Obligatoire | Chaîne Spécifie la variable de flux à laquelle attribuer la variable résolue. |
<DefaultValue> |
Facultatif | Chaîne Spécifie une valeur par défaut à utiliser lorsque la variable ne peut pas être résolue. |
<IgnoreUnresolvedVariables>
Détermine si le traitement s'arrête lorsqu'un ensemble de propriétés n'est pas résolu. Définissez la valeur sur true
pour ignorer les variables non résolues et poursuivre le traitement.
IgnoreUnresolvedVariables
n'est pas applicable lorsque <DefaultValue>
est fourni.
Valeur par défaut | Faux |
Obligatoire ? | Facultatif |
Type | Booléen |
Élément parent |
<ReadPropertySet>
|
Éléments enfants | Aucun |
Informations de référence sur les erreurs
Cette section décrit les codes d'erreur et les messages d'erreur renvoyés, ainsi que les variables d'erreur définies par Apigee spécifiques à la règle <ReadPropertySet>
.
Ces informations sont importantes 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.readpropertyset.UnresolvedVariable |
500 |
Cette erreur se produit si une variable spécifiée dans la règle ReadPropertySet est :
Si |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause |
---|---|
steps.readpropertyset.EmptyReads |
La règle ne comporte aucun élément enfant <Read> . |
steps.readpropertyset.FieldUnset |
Ce code est renvoyé lorsque l'une des conditions suivantes est remplie :
|
Variables de panne
Ces variables sont définies lorsque cette règle déclenche une erreur au moment de l'exécution. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.
Variables | Lieu | Exemple |
---|---|---|
fault.name="FAULT_NAME" |
FAULT_NAME est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name Matches "UnresolvedVariable" |
readpropertyset.POLICY_NAME.failed |
POLICY_NAME est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | readpropertyset.RPS-SetResponse.failed = true |
Exemple de réponse d'erreur
{ "fault": { "faultstring": "ReadPropertySet[RPS-SetResponse]: unable to resolve variable [variable_name]", "detail": { "errorcode": "steps.readpropertyset.UnresolvedVariable" } } }
Exemple de règle de défaillance
<FaultRule name="ReadPropertySet Faults"> <Step> <Name>RPS-CustomSetVariableErrorResponse</Name> <Condition>(fault.name = "SetVariableFailed")</Condition> </Step> <Condition>(readpropertyset.failed = true)</Condition> </FaultRule>
Schémas
Chaque type de règle est défini par un schéma XML (.xsd
). Pour référence, des schémas de règles sont disponibles sur GitHub.