Scénario 5 : Service REST acceptant des requêtes POST HTTP dans un formulaire HTML - 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 comment charger des données dans un service REST à l'aide de POST HTTP dans un fichier formulaire HTML. Pour ce faire, un Job est créé pour accepter les requêtes POST HTTP à l'aide du composant tRESTRequest.

Un formulaire HTML prédéfini UploadFile.html est utilisé afin de charger des données dans le service REST :

<form action="http://localhost:8088/UserInfo" method="post" enctype="multipart/form-data">
	<input type="file" name="id" />
	<button>upload</button>
</form>

Le fichier customer.xml contenant l'ID d'un utilisateur va être chargé :

  <customer>
    <id>100</id>
  </customer>

Configurer le Job

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

Configurer le composant tRESTRequest

  1. Double-cliquez sur le 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 dans 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 id de type byte[] et saisissez multipart dans le champ Comment. Cliquez sur OK afin de sauvegarder le schéma.

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

  6. Renseignez le champ de la colonne URI Pattern avec "/UserInfo".

  7. Sélectionnez Multipart dans la liste Consumes. Laissez les paramètres par défaut pour les autres options.

Configurer le composant tJavaRow

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

  2. Double-cliquez sur le tJavaRow dans l'espace de modélisation graphique pour afficher sa vue Basic settings.

  3. Saisissez le code suivant dans le champ Code afin de convertir le message en type Document et l'afficher dans la console.

    String  result = new String(input_row.id,0,input_row.id.length);
    
    routines.system.Document doc = new routines.system.Document();
    
    doc.setDocument(org.dom4j.DocumentHelper.parseText(result));
    
    output_row.id = doc;
    
    System.out.println(result);

Configurer le composant tXMLMap

  1. Connectez le tJavaRow au tXMLMap à l'aide d'un lien Row > Main.

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

  3. Cliquez sur le bouton [+] en bas à gauche pour ajouter une colonne id de type Document pour l'entrée.

  4. Cliquez-droit sur le nœud root de la table d'entrée, sélectionnez Rename dans le menu contextuel et renommez-le customer.

  5. Créez un sous-élément pour le nœud customer en sélectionnant Create Sub-Element dans le menu contextuel. Nommez le sous-élément id dans la boîte de dialogue qui s'ouvre.

  6. Cliquez sur le bouton [+] en haut à droite pour ajouter une sortie et nommez-la 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 de la table d'entrée et sélectionnez Rename dans le menu contextuel et renommez-le customer.

  9. Créez un sous-élément au nœud customer en sélectionnant Create Sub-Element dans le menu contextuel. Nommez le sous-élément id dans la boîte de dialogue qui s'ouvre.

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

  11. Cliquez sur OK afin de sauvegarder les paramètres.

Configurer le composant tRESTResponse

  1. Reliez le tXMLMap au 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

  1. Sauvegardez le Job et appuyez sur la touche F6 pour l'exécuter.

  2. Ouvrez le fichier UploadFile.html à l'aide d'un navigateur Web.

  3. Cliquez sur le bouton Browse pour naviguer jusqu'au fichier customer.xml contenant l'ID de l'utilisateur, puis cliquez sur upload.

  4. La requête POST HTTP est acceptée par le service REST et l'ID de l'utilisateur est renvoyé au serveur.

    Vous pouvez également voir la réponse dans la page source.

  5. Le contenu du fichier d'entrée est affiché dans la console d'exécution.