Altova MapForce 2024 Enterprise Edition

Cette rubrique couvre l’Étape 1 décrite dans la Configuration de service Web SOAP et explique comment créer un service Web SOAP dans MapForce. Tous les fichiers discutés dans cette rubrique sont disponibles dans le dossier Tutoriel. L’objectif de ce service Web SOAP Web est d’extraire les enregistrements Author depuis un fichier XML, qui satisfait certains critères de recherche.

 

Points importants

Veuillez prendre note des points suivants :

 

Le fait de créer un service Web dans MapForce ne dépend pas du langage de programmation cible. Les différences ne surgissent que lorsque vous compilez et déployez le service Web vers un serveur web.

Pour un service Web, vous pouvez générer Java ou le code C#.

Dans notre exemple, nous utilisons Altova XMLSpy pour générer des exemples de requêtes SOAP qui nous permettent de consulter la sortie. Concevoir des services Web dans MapForce est également possible sans XMLSpy ; toutefois, dans votre cas, vous aurez besoin d’un client SOAP capable de générer des requêtes SOAP depuis des fichiers WSDL.

 

Créer un projet de service Web: Procédures générales

Créer un projet de service Web SOAP dans MapForce implique les étapes suivantes :

 

1.La première étape est de préparer un fichier WSDL (Web Services Description Language) qui décrit la structure de service, les opérations, les paramètres d’entrée/de sortie et le protocole pour la communication. Dans cet exemple, nous avons utilisé Altova XMLSpy pour créer un fichier WSDL. Pour plus d’information sur les documents WSDL, voir la Spécification WSDL.

2.La deuxième étape est de créer un nouveau projet de service Web dans MapForce, qui sera basé sur le fichier WSDL. Dans cette étape, nous importerons également un fichier WSDL dans MapForce et donnerons un nom à notre projet. Le nom de projet avec ses contenus apparaîtra alors également dans la fenêtre Projet.

3.Dans la prochaine étape, nous concevons une opération getAuthor, qui implique l’ajout d’un fichier XML, duquel les enregistrements Author seront extraits, et configurons un filtre, qui assurera que seules les données pertinentes seront mappées dans la structure de réponse.

4.Dans la dernière étape de la configuration du service Web, nous pouvons consulter la sortie du service Web avant de déployer le service dans le serveur. Afin de pouvoir consulter la sortie, nous fournirons un exemple de requête SOAP, qui contient une requête de recherche et qui sera envoyée plus tard au serveur hébergeant le service Web.

 

Étape 1 : Préparer un fichier WSDL

L'image ci-dessous illustre la structure du document WSDL appelé getAuthor.wsdl (affichage WSDL de XMLSpy). Une opération appelée getAuthor a été définie. Pour plus d'informations concernant la structure d'un fichier WSDL, voir Structure du document WSDL. Pour des instructions sur comment créer un document WSDL dans Altova XMLSpy, voir la section Tutoriel WSDL.

 

Notez que pour être en mesure de créer un projet de service MapForce, vous devez fournir un fichier WSDL valide.

MF_getAuthorWSDL

Structure de réponse

Il est important de noter que nous avons modifié le fichier WSDL dans le mode Texte de XMLSpy pour inclure ka structure suivante dans le message de réponse :

 

<xsd:complexType name="Author">

< xsd :sequence>

<xsd:element name="Name" type="xsd:string"/>

<xsd:element name="Country" type="xsd:string"/>

<xsd:element name="Website" type="xsd:string"/>

<xsd:element name="Publication" maxOccurs="unbounded">

<xsd:complexType>

< xsd :sequence>

<xsd:element name="Title" type="xsd:string"/>

<xsd:element name="ISBN" type="xsd:string"/>

<xsd:element name="Publisher" type="xsd:string"/>

<xsd:element name="PrintLength" type="xsd:integer"/>

<xsd:element name="Year" type="xsd:integer"/>

<xsd:element name="Genre" type="xsd:string"/>

<xsd:element name="Price" type="xsd:integer"/>

</xsd:sequence>

<xsd:attribute name="ID" use="required"/>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

<xsd:attribute name="ID" use="required"/>

</xsd:complexType>

 

Cette structure sera visible dans le composant de service Web (voir l’Étape 2 ci-dessous), et le résultat de la requête sera mappée à cette structure.

 

Étape 2 : Créer un projet de service Web

Pour créer un projet de service Web dans MapForce, suivez les étapes ci-dessous :

 

1.Cliquez sur Nouveau dans le menu Fichier ou le bouton de la barre d’outils ic_new et sélectionnez Projet de service Web.

2.Cherchez le fichier de getAuthor.wsdl . Après avoir sélectionné un fichier WSDL, MapForce remplit automatiquement les champs restants (capture d’écran ic-dessous).

mff_soap_insert_wsdl

3.Cliquez sur OK.

4.Sur invitation, saisissez le nom du nouveau projet WSDL (getAuthor dans notre exemple) et cliquez sur Enregistrer.

 

La fenêtre du projet affiche maintenant le projet qui contient le fichier, port et opérations WSDL, et un mappage associé à ce service (capture d’écran ci-dessous).

mff_soap_ws_project

 

Étape 3 : Concevoir une opération getAuthor

Dès que vous avez créé votre projet, un nouveau mappage appelé getAuthor.mfd devient disponible dans la fenêtre de projet. Double-cliquez sur ce mappage pour l’ajouter à la zone de mappage. À cette étape, le mappage contient deux composants de service Web : getAuthor (Entrée) et getAuthor (Sortie) (capture d’écran ci-dessous).

 

Le composant getAuthor (Entrée) contient la partie Requête qui sera utilisée pour interroger un fichier XML à travers le service Web. Le composant getAuthor (Sortie) inclut la structure Author définie dans le fichier WSDL (Structure de réponse ci-dessus). Aucun autre composant ou connexion n’existe à cette étape.

MF_getAuthor01

Ajouter Authors.xml

La prochaine étape est d’ajouter un fichier XML appelé Authors.xml, duquel les données seront extraites. Ajouter Authors.xml au mappage et connectez les nœuds tel qu’affiché dans la capture d’écran ci-dessous.

MF_getAuthor02

La connexion entre les nœuds part:Query et part:Result représente l'appel au service Web. Les données dans Authors.xml sont transmises dans l’élément Author du composant de sortie getAuthor.

 

Configurer un filtre

La prochaine étape est de configurer un filtre sur la connexion entre les éléments Author. Pour définir un filtre, cliquez avec la touche de droite sur la connexion entre les éléments Author, et choisissez Insérer Filtre depuis le menu contextuel. Nous devons aussi ajouter la fonction equal dont les résultats seront fournis dans le paramètre Booléen du filtre (capture d’écran ci-desous). La fonction equal comparera le string query avec la valeur de l’élément Website de chaque auteur. Si la valeur de l’élément Website d’un enregistrement Author coincide avec le string query, cet enregistrement Author sera mappé dans le composant de service Web cible.

MF_getAuthor03

 

Prévisualiser la sortie

Les mappages créés depuis les fichiers WSDL peuvent être consultés dans MapForce avant que le service ne soit déployé dans un serveur Web actuel. Pour prévisualiser ces mappages, vous devez fournir un exemple de requête SOAP (sous format XML) et celui-ci doit être conforme au fichier WSDL. Vous pouvez créer un exemple de requête SOAP pour chaque opération avec Altova XMLSpy ou avec un autre client SOAP de votre choix.

 

Si vous utilisez XMLSpy, ouvrez getAuthor.wsdl et cliquez sur la commande de menu SOAP | Créer Nouvelle Requête SOAP. Dans la prochaine étape, nous allons ajouter un fichier de requête SOAP : Suivez les étape ci-dessous :

 

1.Double-cliquez sur l’en-tête du composant getAuthor (Input). Ceci ouvrira la boîte de dialogue Paramètres de composant (capture d’écran ci-dessous)

mff_soap_create_request

2.Si vous avez un exemple de fichier requête SOAP, cliquez sur Browse et sélectionnez le fichier pertinent. Si XMLSpy est installée aux côtés de MapForce, vous pouvez créer un exemple de requête directement depuis MapForce en cliquant sur Créer. Quand vous cliquez sur Créer, vous serez invité à donner un nom au nouveau fichier de requête et sélectionner un dossier pour ce fichier. Puis, vous serez redirigé vers XMLSpy, dans lequel vous devrez saisir un exemple de string requête et enregistrer votre fichier de requête.

3.Cliquez sur OK dans les Paramètres de composant.

 

getAuthorRequest.xml

Pour cet exemple, nous avons crée un fichier de requête appelé getAuthorRequest.xml dans XMLSpy (liste de code ci-dessous). Ce fichier de requête sera importé dans le mappage, qui nous permettra de prévisualiser la sortie. Le fichier de requête contient le string de recherche Iceland. Le filtre sera exécuté á travers tous les auteurs et s’il existe des auteurs d’Islande Authors.xml, ces enregistrements d’auteur seront gérés dans la structure de réponse.

 

<?xml version="1.0" encoding="UTF-8"?>

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <SOAP-ENV:Body>

     <Query xsi:type="xsd:string">Iceland</Query>

  </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

 

Prévisualiser la sortie

Pour voir le message de de réponse, ouvrez le volet Sortie. La liste de codes ci-dessous affiche un extrait du message de réponse. Deux auteurs d’Islande ont été mappés (pays en surbrillance jaune ci-dessous).

 

<?xml version="1.0" encoding="UTF-8"?>

<soap-env:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">

<soap-env:Body>

<Result>

<Author ID="2">

<Name>Ragnar Jonasson</Name>

<Country>Iceland</Country>

<Website>ragnarjonasson.com</Website>

<Publication ID="2">...</Publication>

<Publication ID="3">...</Publication>

<Publication ID="28">...</Publication>

<Publication ID="29">...</Publication>

</Author>

<Author ID="27">

<Name>Arnaldur Indridason</Name>

<Country>Iceland</Country>

<Website>n/a</Website>

<Publication ID="34">

<Title>The Darkness Knows</Title>

<ISBN>125076548X</ISBN>

<Publisher>Minotaur Books</Publisher>

<PrintLength>346</PrintLength>

<Year>2021</Year>

<Genre>Crime &amp; Mystery</Genre>

<Price>14.36</Price>

</Publication>

</Author>

</Result>

</soap-env:Body>

</soap-env:Envelope>

 

Étapes suivantes

Vous êtes désormais prêt à générer du code qui implémente le service Web (Java ou C#), à créer le code et déployer le service au serveur. Pour plus d’information, voir Générer le service Web SOAP (Java)

 

© 2018-2024 Altova GmbH