Scénario 3 : Service REST acceptant des requêtes HTTP POST - 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 deux sous-jobs : le premier sous-job expose un service REST acceptant des requêtes HTTP POST de clients REST, écrivant des données dans une base de données après réception d'une requête HTTP et affichant les informations de l'échange serveur-client dans la console de la vue Run. Le second sous-job affiche les résultats des mises à jour de la base de données.

Construire le Job

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

  2. Connectez le tRESTRequest au composant tMysqlOutput à l'aide d'un lien Row > Main et renommez le flux de sortie request dans cet exemple.

  3. Reliez le composant tMysqlOutput au tXMLMap à l'aide d'un lien Row > Main.

  4. Connectez le composant tXMLMap au tRESTResponse à l'aide d'un lien Row > Main que vous renommez response, par exemple. Cliquez sur OK dans la boîte de dialogue qui s'ouvre afin d'accepter la propagation du schéma du tRESTResponse.

  5. Ajoutez un tMysqlInput et un tLogRow au Job en saisissant leur nom dans l'espace de modélisation graphique ou en les déposant depuis la Palette. Reliez le tMysqlInput au tLogRow à l'aide d'un lien Row > Main.

  6. Connectez le tMysqlOutput au tMysqlInput à l'aide d'un lien Trigger > OnComponentOk afin de relier les deux sous-jobs.

Configurer les composants

Configurer les paramètres de la requête REST

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

  2. Renseignez le champ REST Endpoint en saisissant l'emplacement de l'URI où le service REST est accessible pour les requêtes, "http://localhost:8045/users" dans cet exemple.

  3. Cliquez sur le nom du flux de sortie, request dans cet exemple, dans la colonne Output Flow de la table REST API Mapping pour afficher le bouton [...]. Cliquez sur ce bouton pour ouvrir la boîte de dialogue [Schema]. Définissez comme suit le schéma pour le flux request. Ajoutez trois colonnes :

    • 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.

    Cela fait, cliquez sur OK afin de valider les paramètres du schéma et fermer la boîte de dialogue.

  4. Cliquez sur la colonne HTTP Verb et sélectionnez POST dans la liste.

  5. Dans la colonne URI Pattern, saisissez le modèle d'URI des requêtes POST, "/post/{id}/{first_name}/{last_name}", dans cet exemple.

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

  6. Cliquez sur l'onglet Advanced settings et cochez la case Log messages.

Configurer les paramètres de la base de données et de la réponse

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

  2. Dans la liste Property Type, laissez Built-in sélectionné et renseignez manuellement les détails de connexion à la base de données dans les champs Host, Port, Database, Username et Password.

    Si vous avez centralisé vos informations de connexion à la base de données dans le nœud Metadata > DB Connections du Repository, vous pouvez choisir Repository dans la liste Property Type et sélectionner la connexion centralisée afin de renseigner automatiquement les champs. Pour plus d'informations concernant le stockage des métadonnées, consultez le Guide utilisateur du Studio Talend.

  3. Renseignez le champ Table avec le nom de la table cible de la base de données, users dans cet exemple.

  4. Sélectionnez les actions à effectuer sur la table de la base de données et sur les données selon vos besoins, dans les listes Action on table et Action on data, respectivement. Dans cet exemple, la table cible est créée si elle n'existe pas dans la base de données spécifiée. Les données provenant des requêtes clients sont insérées, ou mises à jour si elles existent déjà, dans la table de la base de données.

  5. Cliquez sur le bouton Sync columns afin de synchroniser le schéma de la table et le schéma d'entrée.

  6. Double-cliquez sur le composant tXMLMap pour ouvrir son éditeur de mapping.

  7. 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 qui s'ouvre, user dans cet exemple.

  8. 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.

  9. Double-cliquez sur le composant tRESTResponse et configurez les paramètres de réponse selon vos besoins. Dans cet exemple, laissez les paramètres par défaut.

Configurer l'affichage des résultats

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

  2. Spécifiez les informations de connexion à la base de données, le nom de la table ainsi que le schéma de la table. Ces informations sont les mêmes que dans le composant tMysqlOutput.

  3. Cliquez sur le bouton Guess Query afin de renseigner le champ Query avec l'instruction de requête.

  4. Double-cliquez sur le tLogRow et sélectionnez l'option Table afin d'afficher le contenu de la base de données sous forme de tableau.

Sauvegarder et exécuter le Job

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

  2. Cliquez sur le bouton Run dans l'onglet Run ou appuyez sur la touche F6 pour l'exécuter.

    La console affiche les informations relatives à l'implémentation du service, notamment son URL.

    Lorsqu'une requête HTTP POST est reçue d'un client, la console affiche les informations relatives à l'échange, ainsi que le résultat de la mise à jour de la base de données.

    Pour un cas d'utilisation appelant un service REST à l'aide de la méthode HTTP POST, consultez Scénario 2 : Mettre à jour les informations des utilisateurs via une interaction avec un service RESTful.