Scénario 2 : Mettre à jour les informations des utilisateurs via une interaction avec un service RESTful - 6.1

Composants Talend Guide de référence

EnrichVersion
6.1
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for Data Quality
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Real-Time Big Data Platform
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Ce scénario décrit un Job à trois composants mettant à jour, dans une base de données distante, les informations d'une liste d'utilisateurs via un service REST, à l'aide de la méthode HTTP POST. Une fois exécuté, le Job affiche les informations de l'échange serveur-client dans la console de la vue Run.

Les informations à mettre à jour sur le serveur sont stockées dans un fichier CSV, qui se présente comme suit :

id;first_name;last_name
1;John;Smith
2;Martin;Reagan
3;James;White
4;Jenny;Jackson
5;Robert;Thomson

Prérequis:

Si vous êtes un utilisateur de la solution ESB de Talend, créez un Job comme décrit dans Scénario 3 : Service REST acceptant des requêtes HTTP POST et exécutez le Job en tant que serveur REST afin d'exposer un service REST acceptant les requêtes HTTP POST. Une fois le Job exécuté, la console affiche les informations relatives à l'implémentation du service, notamment l'URL de l'endpoint du service, http://localhost:8045/users dans cet exemple. Si vous saisissez http://localhost:8045/users?_wadl dans votre navigateur Web, les informations de définition du service s'affichent comme ceci :

Si vous n'utilisez pas la solution ESB de Talend, vous devez obtenir les informations relatives au service à partir de votre fournisseur de services REST, comme l'URL, le chemin d'accès à la ressource, ainsi que la structure des données. Vous devez également apporter au scénario les modifications nécessaires à vos configurations.

Construire le Job

  1. Créez un Job et ajoutez les composants suivants en saisissant leur nom dans l'espace de modélisation graphique ou en les déposant depuis la Palette:

    • un tFileInputDelimited, pour lire les informations des utilisateurs à partir d'un fichier local,

    • un tXMLMap, pour adapter la structure d'entrée à la structure du service REST,

    • et un tRESTClient, utilisé pour appeler le service REST afin d'envoyer des données à la base de données distante.

  2. Connectez le tFileInputDelimited au tXMLMap à l'aide d'un lien Row > Main.

  3. Connectez le tXMLMap au tRESTClient à l'aide d'un lien Row > Main et renommez le flux de sortie, request dans cet exemple.

  4. Renommez les composants afin mieux identifier leur rôle.

Configurer les composants

Configurer les données d'entrée et les mappings de structure

  1. Double-cliquez sur le tFileInputDelimited pour ouvrir sa vue Basic settings.

  2. Spécifiez le fichier d'entrée dans le champ File name, renseignez le champ Header en saisissant 1 afin d'ignorer l'en-tête et laissez les autres paramètres tels qu'ils sont.

  3. Cliquez sur le bouton [...] à côté du champ Edit schema afin d'ouvrir la boîte de dialogue [Schema] et de modifier le schéma d'entrée comme suit. Ajoutez les colonnes suivantes :

    • id, de type Integer, de longueur (Length) 2. Cochez la case Key pour en faire la colonne clé,

    • first_name, de type String,

    • last_name, de type String.

  4. Double-cliquez sur le composant tXMLMap pour ouvrir son éditeur.

  5. Renommez le nœud root dans la table de sortie : cliquez-droit sur le nœud, sélectionnez Rename dans le menu contextuel et spécifiez un nouveau nom dans la boîte de dialogue, user dans cet exemple.

  6. Sélectionnez les trois colonnes de la table d'entrée et déposez-les sur le nœud user, puis sélectionnez l'option Create as sub-element of target node dans la boîte de dialogue afin de configurer ces colonnes comme des sous-éléments du nœud user. Cela fait, cliquez sur OK afin de valider les mappings et fermer l'éditeur.

Configurer l'appel du service

  1. Double-cliquez sur le composant tRESTClient pour ouvrir sa vue Basic settings.

  2. Renseignez le champ URL avec l'emplacement de l'URI où est accessible le service REST, "http://localhost:8088/users" dans cet exemple.

  3. Dans le champ Relative Path, saisissez le chemin d'accès à la ressource, "/post/" + row1.id+ "/" + row1.first_name + "/" + row1.last_name dans cet exemple. Cela va envoyer les données de la ligne d'entrée au serveur via le chemin de la ressource.

  4. Dans la liste HTTP Method, sélectionnez GET afin d'envoyer une requête HTTP pour récupérer les enregistrements existants.

    Dans la liste Accept Type, sélectionnez le type que le côté client accepte pour la réponse du côté serveur, XML.

  5. Dans la vue Advanced settings du composant tRESTClient, cochez la case Log messages afin d'enregistrer les informations relatives à l'échange de messages avec le serveur.

    Laissez les autres paramètres tels qu'ils sont.

Exécuter le Job et vérifier les résultats

Appuyez sur les touches Ctrl+S afin de sauvegarder votre Job et appuyez sur F6 pour l'exécuter.

La console affiche les informations relatives à l'échange client serveur :

La console du Job utilisé en tant que serveur affiche les informations relatives à l'échange, ainsi que le résultat de la mise à jour de la base de données.