Mettre en forme, consulter et convertir des messages

Cette page s'applique à Apigee et à Apigee hybrid.

Consultez la documentation d'Apigee Edge.

Vous pouvez utiliser les règles incluses dans Apigee pour manipuler les messages qui transitent par vos proxys d'API. Les règles vous permettent d'effectuer les opérations suivantes :

  • Convertir des messages entre différents formats (par exemple, du format XML vers JSON).
  • Définir les valeurs de certaines variables à partir du contenu des messages et créer des messages à partir des valeurs de certaines variables.
  • Utiliser un code procédural, tel que JavaScript, Java ou Python, pour gérer les messages et les données de manière plus complexe.

En général, lorsque vous utilisez ces règles, vous spécifiez l'entrée et la sortie en tant que variables de flux. Au moment de l'exécution, Apigee récupère la valeur d'entrée à partir d'une variable source et écrit la valeur de sortie dans une variable de sortie.

Ces fonctionnalités sont présentées dans cet article. Pour obtenir des informations plus complètes et techniques, consultez la documentation de référence correspondant à chaque règle.

Gestion simple pour XML et JSON

Apigee inclut des règles qui facilitent la conversion entre XML et JSON, et la transformation XML avec XSL.

Convertir le format JSON au format XML

La règle JSONtoXML (JSON vers XML) utilise votre entrée JSON et la convertit au format XML.

Dans l'exemple de règle suivant, la règle récupère un message au format JSON de la variable request, puis remplace la valeur de la variable par un message au format XML. L'entrée est spécifiée dans l'élément <Source>, tandis que la sortie est spécifiée dans l'élément <OutputVariable>.

<JSONToXML name="jsontoxml">
     <Source>request</Source>                     ---> INPUT
     <OutputVariable>request</OutputVariable>          OUTPUT --->
</JSONToXML>

Convertir le format XML au format JSON

La règle XMLtoJSON (XML vers JSON) convertit le message d'entrée XML au format JSON.

Dans l'exemple de règle suivant, la règle prend un message au format XML de la variable response, puis remplace la valeur de la variable par un message au format JSON. L'entrée est spécifiée dans l'élément <Source>, tandis que la sortie est spécifiée dans l'élément <OutputVariable>.

<XMLToJSON name="ConvertToJSON">
   <Source>response</Source>                     ---> INPUT
   <OutputVariable>response</OutputVariable>          OUTPUT --->
</XMLToJSON>

Transformer des messages XML avec XSL

Vous pouvez utiliser la règle XSLTransform (transformation XSL) pour transformer des messages avec XSL. Par exemple, après avoir converti une charge utile JSON vers XML, vous pouvez utiliser la règle de transformation XSL avec une feuille de style pour effectuer la transformation dont vous avez besoin.

Dans l'exemple de règle suivant, la règle récupère un message au format XML de la variable response, puis remplace la valeur de la variable par un message mis en forme par my_transform.xsl. L'entrée est spécifiée dans l'élément <Source>, tandis que la sortie est spécifiée dans l'élément <OutputVariable>.

<XSL name="TransformXML">
  <Source>response</Source>                        ---> INPUT
  <ResourceURL>xsl://my_transform.xsl</ResourceURL>       --TRANSFORMER--
  <OutputVariable>response</OutputVariable>                            OUTPUT --->
</XSL>

Traiter des données variables

La gestion des données dans un proxy implique souvent de travailler avec des données d'état en tant que valeurs de variable de flux. Pour ce faire, vous pouvez utiliser une règle qui obtient ou définit des valeurs de variables. Par exemple, vous pouvez intégrer des valeurs de variables dans un message ou extraire le contenu d'un message pour définir les valeurs de variables.

Assurez-vous de consulter les références des deux règles suivantes :

  • Règle AssignMessage (attribution d'un message) pour créer des messages à partir de valeurs de variables.
  • Règle ExtractVariables (extraction de variables) pour attribuer des variables à partir du contenu des messages.

Créer des transformations plus complexes

Pour une gestion de données dont la complexité dépasse la capacité des règles incluses, vous pouvez utiliser des langages procéduraux tels que JavaScript, Java ou Python.

En règle générale, cela implique d'écrire du code dans l'un de ces langages, puis d'appeler le code à partir d'une règle spécifique au langage. Pour plus d'informations à ce sujet, consultez la section Intégrer le code procédural.