Scénario 4 : Service REST acceptant les requêtes POST HTTP et envoyant des réponses

Composants Talend Open Studio Guide de référence

EnrichVersion
6.3
EnrichProdName
Talend Open Studio for Data Quality
Talend Open Studio for Big Data
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Open Studio for Data Integration
task
Gouvernance de données
Qualité et préparation de données
Création et développement
EnrichPlatform
Studio Talend

Ce scénario décrit comment construire un service REST acceptant les requêtes POST HTTP de type Document provenant d'un client et envoyant une réponse. Pour ce faire, deux Jobs sont construits : un pour créer le service REST et l'autre pour l'appeler.

Créer le Job du service REST

Glissez-déposez les composants suivants de la Palette dans l'espace de modélisation graphique : un tRESTRequest, un tXMLMap et un tRESTResponse.

Configurer le composant tRESTRequest
  1. Double-cliquez sur le composant tRESTRequest dans l'espace de modélisation graphique pour afficher sa vue Basic settings.

  2. Dans le champ REST Endpoint, laissez l'URI par défaut "http://localhost:8088/", à laquelle le service Web REST-ful est accessible pour les requêtes.

  3. Cliquez sur le bouton [+] pour ajouter une ligne à la table REST API Mapping.

  4. Sélectionnez la nouvelle ligne et cliquez sur le bouton [...] dans la colonne Output Flow pour ajouter un schéma au flux de sortie. Nommez le schéma UserInfo dans ce scénario.

    L'éditeur du schéma s'ouvre. Cliquez sur le bouton [+] pour ajouter une ligne body de type Document et cliquez sur OK pour sauvegarder le schéma.

  5. De retour dans la vue Basic settings du composant, sélectionnez POST dans la liste de la colonne HTTP Verb.

  6. Renseignez le champ dans la colonne URI Pattern en saisissant "/UserInfo". Laissez les valeurs par défaut des autres options.

Configurer le composant tXMLMap
  1. Reliez le tRESTRequest au tXMLMap à l'aide d'un lien Row > UserInfo.

  2. Double-cliquez sur le tXMLMap dans l'espace de modélisation graphique pour ouvrir son Map Editor.

  3. Cliquez-droit sur le nœud root de la table d'entrée et sélectionnez Create Sub-Element. Nommez le sous-élément person dans la boîte de dialogue qui s'ouvre.

  4. Cliquez-droit sur le nœud person créé dans l'étape précédente et sélectionnez As loop element.

  5. Créez deux sous-éléments au nœud person en sélectionnant Create Sub-Element dans le menu contextuel. Nommez ces sous-éléments id et name.

  6. Cliquez sur le bouton [+] dans le coin supérieur droit pour ajouter une sortie, que vous nommez Response.

  7. Cliquez sur le bouton [+] en bas à droite pour ajouter une colonne body de type Document pour la sortie.

  8. Cliquez-droit sur le nœud root dans la table de sortie et sélectionnez Create Sub-Element. Nommez le sous-élément person dans la boîte de dialogue.

  9. Cliquez-droit sur le nœud person créé dans l'étape précédente et sélectionnez As loop element.

  10. Créez trois sous-éléments au nœud person en sélectionnant Create Sub-Element dans le menu contextuel, respectivement id, name et company dans cet exemple.

  11. Sélectionnez la colonne id de la table d'entrée et déposez-la dans le champ Expression du nœud id de la table de sortie.

  12. Sélectionnez la colonne name de la table d'entrée et déposez-la dans le champ Expression du nœud name de la table de sortie.

    Cliquez dans le champ Expression du nœud name de la table de sortie et cliquez sur le bouton [...] dans ce champ pour afficher l'assistant [Expression Builder].

    Dans la zone Expression, saisissez StringHandling.UPCASE([UserInfo.body:/root/person/name]) afin de convertir le nom de l'utilisateur en majuscules. Cliquez sur OK pour fermer l'assistant.

    Pour plus d'informations concernant l'utilisation de l'Expression Builder, consultez le Guide utilisateur du Studio Talend.

  13. Dans le champ Expression du nœud company, saisissez "Talend".

  14. Cliquez sur OK pour sauvegarder les paramètres.

Configurer le composant tRESTResponse
  1. Reliez le tXMLMap à un tRESTResponse à l'aide d'un lien Row > Response.

    Le schéma défini dans le tXMLMap est récupéré automatiquement dans le tRESTResponse.

  2. Sélectionnez OK(200) dans la liste Return status code.

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

Sauvegarder et exécuter le Job

Sauvegardez le Job et appuyez sur F6 pour l'exécuter. Le service est démarré.

Créer le Job consommateur

Glissez-déposez les composants suivants de la Palette dans l'espace de modélisation graphique : un tFixedFlowInput, un tXMLMap, un tRESTClient et un tLogRow.

Configurer le composant tFixedFlowInput
  1. Double-cliquez sur le tFixedFlowInput dans l'espace de modélisation graphique pour afficher sa vue Basic settings.

  2. Cliquez sur le bouton Edit schema pour afficher l'éditeur du schéma. Cliquez sur le bouton [+] pour ajouter deux colonnes de type String, id et name. Cliquez sur OK pour fermer l'éditeur du schéma.

  3. Dans la vue Basic settings du composant, dans la zone Mode, sélectionnez l'option Use Inline Content.

  4. Dans le champ Content, saisissez l'id et le nom (name) de trois utilisateurs, par exemple :

    1;ford
    2;smith
    3;thomson
Configurer le composant tXMLMap
  1. Reliez le tFixedFlowInput au tXMLMap à l'aide d'un lien Row > Main.

  2. Reliez le tXMLMap au tRESTClient à l'aide d'un lien Row > Main et nommez le flux de sortie request dans cet exemple.

  3. Double-cliquez sur le tXMLMap dans l'espace de modélisation graphique afin d'ouvrir le Map Editor.