Scénario 1 : Obtenir des informations sur un utilisateur en interagissant avec un service RESTful - 6.1

Composants Talend Open Studio Guide de référence

EnrichVersion
6.1
EnrichProdName
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
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 composé de trois composants qui récupère des informations sur un utilisateur en se basant sur l'identifiant de l'utilisateur depuis un service REST via HTTP GET. Les informations récupérées, ainsi que l'échange de messages entre le client et le serveur, sont affichés dans la console Run.

Prérequis

Si vous êtes un utilisateur de la solution Talend Open Studio for ESB, créez un Job comme décrit dans Scénario 2 : Utiliser les paramètres URI Query pour explorer les données d'une base de données, exécutez le Job afin d'exposer un service REST et saisissez l'URL du service REST dans votre navigateur Web, http://localhost:8088/users dans cet exemple. Vous devriez voir des informations telles que les suivantes :

Si vous n'êtes pas un utilisateur de la solution Talend Open Studio for ESB, vous devez obtenir l'URL, la structure des données et les paramètres requis par le service REST appelé depuis votre fournisseur de service REST. Vous devez également apporter les modifications nécessaires aux configurations présentées dans le scénario.

Construire le Job

  1. Déposez les composants suivants de la Palette dans l'espace de modélisation graphique :

    • un tRESTClient, utilisé pour appeler le service REST et récupérer les informations sur l'utilisateur depuis le serveur,

    • un tXMLMap, utilisé pour adapter l'arborescence du service REST

    • et un tLogRow afin d'afficher les informations sur l'utilisateur récupérées dans la console Run.

  2. Reliez le tRESTClient au tXMLMap à l'aide d'un lien Row > Response.

  3. Reliez le premier tXMLMap au tLogRow à l'aide d'un lien Row > Main. Nommez cette connexion out dans cet exemple.

  4. Reliez le second tXMLMap au tFileOutputDelimited à l'aide d'un lien Row > Main et renommez ce lien out.

  5. Afin de mieux identifier le rôle de chaque composant, renommez-les comme suit :

Configurer les composants

Configurer l'appel du service

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

  2. Dans le champ URL, saisissez l'URL du service REST invoqué, "http://localhost:8088/users" dans cet exemple. Notez que l'URL utilisée dans ce scénario est donnée uniquement à titre d'exemple.

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

    Dans la liste Accept Type, sélectionnez le type accepté par le côté client pour la réponse du côté serveur, XML. Laissez les autres paramètres tels qu'ils sont.

  4. Cliquez sur le bouton [+] situé sous la table Query parameters afin d'ajouter deux paramètres, from et to. Définissez la valeur de ces paramètres à 2 afin d'obtenir les informations de l'utilisateur ayant pour identifiant 2.

    Sinon, vous pouvez également obtenir les informations de l'utilisateur ayant pour identifiant 2 en ajoutant ?from=2&to=2 à l'URL du service.

  5. Dans la vue Advanced settings du tRESTClient, cochez les cases Log messages et Convert Response To DOM Document afin d'enregistrer le contenu de l'échange de messages avec le serveur et convertir les réponses du serveur en type Document.

Mapper la structure du service et afficher les informations de l'utilisateur récupérées

  1. Double-cliquez sur le tXMLMap pour ouvrir l'éditeur de mapping.

  2. Si vous avez sélectionné XML dans la liste Accept Type du composant tRESTClient, définissez la structure de l'arbre XML selon la structure du service.

    1. Dans la table d'entrée, dans la colonne body, cliquez-droit sur le nœud root. Dans le menu contextuel, cliquez sur Rename et renommez le nœud users.

    2. Cliquez-droit sur le nœud users. Dans le menu contextuel, cliquez sur Create Sub-Element et créez un sous-élément nommé users. Définissez l'élément user en tant qu'élément de boucle car la structure XML du service Web à invoquer effectue une boucle sur cet élément.

    3. Cliquez-droit sur le nœud user. Dans le menu contextuel, cliquez sur Create Attribute et saisissez id dans la boîte de dialogue [Create New Attribute] afin de créer un attribut nommé id pour le nœud user.

    4. Cliquez-droit à nouveau sur le nœud user. Dans le menu contextuel, cliquez sur Create Sub-Element et saisissez first_name dans la boîte de dialogue [Create New Element] afin de créer un sous-élément nommé first_name pour le nœud user.

      Répétez cette opération afin de créer un autre sous-élément last_name sous le nœud user.

    5. Déposez les colonnes id, first_name et last_name de la table d'entrée dans la table de sortie. Cliquez ensuite sur OK pour valider le mapping et fermer l'éditeur.

    Si vous avez sélectionné JSON dans la liste Accept Type du composant tRESTClient, la réponse du serveur est renvoyée au format JSON et convertie en type Document. Dans cet exemple, la structure de la réponse convertie se présente comme suit :

    <root>
        <users>
            <user>
                <id>2</id>
                <first_name>Theodore</first_name>
                <last_name>Harding</last_name>
            </user>
        </users>
    </root>

    Notez que l'élément <root> est supprimé si la case Wrap JSON Response est cochée dans la vue Advanced settings du composant tRESTClient.

    Définissez la structure XML en conséquence et mappez-la comme décrit précédemment.

  3. Double-cliquez sur le tLogRow afin d'ouvrir sa vue Basic settings.

  4. Cliquez sur le bouton Sync columns afin de vous assurer que le schéma du composant est synchronisé avec le schéma de sortie du tXMLMap.

  5. Dans le champ Mode, sélectionnez l'option Table afin d'afficher le résultat de l'opération GET sous forme de tableau.

Sauvegarder et exécuter le Job

  1. Appuyez sur les touches Ctrl+S pour sauvegarder votre Job.

  2. Appuyez sur la touche F6 ou sur le bouton Run de la vue Run pour exécuter le Job.

    La console montre que le tRESTClient lit les informations sur l'utilisateur correspondant à l'identifiant spécifié depuis le serveur.

    Si vous avez sélectionné XML dans la liste Accept Type du composant tRESTClient, les résultats d'exécution se présentent comme suit :

    Si vous avez sélectionné JSON dans la liste Accept Type du composant tRESTClient, les résultats d'exécution se présentent comme suit :