Accéder au contenu principal Passer au contenu complémentaire

Création d'un fournisseur de service de données

Dans ce scénario, le fournisseur de service de données utilise les composants tESBProviderRequest et tESBProviderResponse pour créer l'accès au service Web relatif aux aéroports et utilise le composant tXMLMap pour obtenir les données des aéroports, fournies par une base de données MySQL dans le flux principal requête-réponse, pour publication. Les données de la base sont chargées par le composant tMysqlInput.

Créer un Job fournisseur de service de données

Procedure

  1. Sous le nœud Services de la vue Repository, cliquez-droit sur l'opération du nouveau service Web concernant les aéroports et dans le menu contextuel, sélectionnez Assign Job. Dans ce scénario, cette opération est getAirportInformationByISOCountryCode.
  2. L'assistant Assign Job s'ouvre. Sélectionnez l'opération Create a new Job and Assign it to this Service Operation puis cliquez sur Next
  3. Dans la vue New Job de l'assistant, le Job à créer est déjà nommé automatiquement, cliquez sur Finish. Une esquisse de Job s'ouvre dans l'espace de modélisation graphique.

Déposer et relier les composants pour le fournisseur

Dans l'esquisse de Job, un tESBProviderRequest et un tESBProviderResponse sont déjà sélectionnés et configurés. Le tESBProviderRequest envoie une requête au Service Web spécifié et le tESBProviderResponse renvoie la réponse correspondant à la requête. Ces deux composants se trouvent dans la famille ESB de la Palette.

Procedure

  1. Cliquez-droit sur le composant tESBProviderRequest et glissez jusqu'au tESBProviderResponse pour relier ces deux composants.
  2. Déposez un tXMLMap de la Palette au milieu du lien Row et, dans la fenêtre qui s'ouvre, nommez le lien de sortie, par exemple, airport_response. Ce nom sera également utilisé comme nom de la table de sortie dans le Map Editor du tXMLMap.

    Le Job fournisseur de service de données doit ressembler à ceci :

    Capture d'écran du Job dans l'espace de modélisation graphique.

    L'icône rouge vous demande de configurer le composant tXMLMap.

  3. Depuis le nœud Db Connections de la vue Repository, déposez la connexion aux données des aéroports, la table airport de la base de données, dans l'espace de modélisation graphique. L'assistant Components s'ouvre.
    Pour plus d'informations concernant la création d'une connexion à une base de données dans la vue Repository, consultez Gestion des métadonnées dans le Studio Talend.
  4. Double-cliquez sur le tMysqlInput dans cet assistant pour ajouter le composant correspondant dans l'espace de modélisation graphique et le relier au tXMLMap.

Results

Dans ce scénario, les données relatives aux aéroports sont composées de noms d'aéroports et du code pays correspondant. La capture d'écran montre la table de base de données utilisée.

Table de base de données.

Vous n'avez qu'à configurer le composant tXMLMap, car les autres composants sont automatiquement configurés.

Configurer le tXMLMap

Procedure

  1. Dans l'espace de modélisation graphique, double-cliquez sur le composant tXMLMap pour ouvrir son éditeur.
    Éditeur de maps.
  2. Dans la table principale du flux d'entrée (gauche), cliquez-droit sur le nom de la colonne payload et, dans le menu contextuel, sélectionnez Import from Repository. L'assistant Metadatas s'ouvre.
    Pour plus d'informations concernant la création d'une arborescence XML, consultez Utiliser le type Document pour créer l'arborescence XML.
  3. Développez le nœud File XML dans l'assistant, sélectionnez le schéma du côté de la requête et cliquez sur OK pour valider la sélection. Dans cet exemple, le schéma est getAirportInformationByISOCountryCode.
    Assistant des métadonnées (Metadata).
  4. Effectuez la même opération pour importer le schéma hiérarchique pour le côté de la réponse (à droite). Dans cet exemple, le schéma est getAirportInformationByISOCountryCodeResponse.
  5. Pour créer une jointure sur les données de référence, cliquez sur le nœud CountryAbbrviation du côté de l'entrée, maintenez le clic et déposez le nœud sur la colonne Exp.key du flux de référence (lookup) correspondant à la ligne id.
  6. Dans la table représentant le flux de référence, cliquez sur l'icône de clé anglaise dans le coin supérieur droit pour ouvrir le panneau de configuration.
  7. Configurez Lookup Model à Reload at each row, Match Model à All matches et Join Model à Inner join.
    Capture d'écran de la table de flux lookup.
    Plus d'informations concernant :
  8. Répétez l'opération pour ouvrir le panneau de configuration du côté de la sortie (à droite) et configurez l'option All in one sur true. Cela vous assure que seule une réponse est retournée pour chaque requête envoyée, sinon, les données des aéroports de la base de données peuvent fournir plusieurs aéroports, donc plusieurs réponses, pour chaque code pays envoyé comme une requête.
    Pour plus d'informations concernant l'option All in one, consultez Écrire dans un document les éléments en sortie.
    Capture d'écran de la table de sortie.
  9. Cliquez sur la ligne name dans le flux de référence (à gauche), maintenez le clic et déposez la ligne sur la colonne Expression correspondante dans le nœud tns:getAirportInformationByISOCountryCodeResult dans l'arborescence XML du flux de sortie (airport_response dans cet exemple).

    L'éditeur de votre tXMLMap doit ressembler à ceci :

    Éditeur de maps
    Note InformationsNote:

    Dans un cas réel d'utilisation, vous pouvez également ajouter des données hiérarchiques pour référence.

  10. Cliquez sur OK pour fermer l'éditeur et valider cette configuration.

Exécuter le Job fournisseur

About this task

Maintenant que les composants sont configurés, le Job peut être exécuté.

Pour ce faire, procédez comme suit :

Procedure

Appuyez sur F6 pour exécuter le Job. Une fois lancé, la vue Run (Exécuter) s'ouvre et affiche les résultats d'exécution.
Capture d'écran des résultats dans la console après l'exécution réussie du Job.

Results

Le Job fournisseur de services de données est exécuté et écoute toutes les requêtes envoyées au service Web jusqu'à ce que vous cliquiez sur le bouton Kill pour l'arrêter, car, par défaut, l'option Keep listening de la vue Basic settings du tESBProviderRequest est automatiquement cochée.

What to do next

Vous devez configurer le Job consommateur qui envoie des requêtes au Job fournisseur de services de données créé.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.