Règle ReadPropertySet

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 name peut contenir des lettres, des chiffres, des espaces, des tirets, des traits de soulignement et des points. Cette valeur ne peut pas dépasser 255 caractères.

Vous pouvez également utiliser l'élément <DisplayName> pour ajouter un libellé à la règle dans l'éditeur de proxy de l'interface utilisateur de gestion avec un nom différent, en langage naturel.

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 Name en fonction de la ref, puis la valeur. Si aucun de ces éléments ne peut être résolu, la <DefaultValue>, le cas échéant, s'applique.

<Name> et <Key> se combinent en propertyset.{value_resolved_from_Name}.{value_resolved_from_Key}.

<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 Key en fonction de la ref, puis la valeur. Si aucun de ces éléments ne peut être résolu, la <DefaultValue>, le cas échéant, s'applique.

<Name> et <Key> se combinent en propertyset.{value_resolved_from_Name}.{value_resolved_from_Key}.

<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 :

  • hors de portée (non disponible dans le flux spécifique où la règle est exécutée)
  • ou
  • impossible à résoudre (non définie)

Si <IgnoreUnresolvedVariables> est faux et que <DefaultValue> n'est pas spécifié, la résolution échoue.

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 :
  • Aucune référence et aucun nom ne sont définis pour <Name>.
  • Aucune référence et aucun nom ne sont définis pour <Key>.
  • Aucune valeur n'a été fournie pour <AssignTo>

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.