Tutoriel WSDL: langage de description de services Web avec exemple

Table des matières:

Anonim

Qu'est-ce que WSDL?

Le langage WSDL ( Web Services Description Language ) est un fichier XML qui indique essentiellement à l'application client ce que fait le service Web. Le fichier WSDL est utilisé pour décrire en quelques mots ce que fait le service Web et donne au client toutes les informations nécessaires pour se connecter au service Web et utiliser toutes les fonctionnalités fournies par le service Web.

Dans ce tutoriel, nous allons nous concentrer sur le dernier point qui est la partie la plus importante des services Web, à savoir le WSDL ou le langage de description des services Web.

Le fichier WSDL est utilisé pour décrire en quelques mots ce que fait le service Web et donne au client toutes les informations nécessaires pour se connecter au service Web et utiliser toutes les fonctionnalités fournies par le service Web.

Dans ce didacticiel, vous apprendrez-

  • Structure d'un document WSDL
  • Éléments WSDL
  • Pourquoi WSDL
  • Partie de message WSDL
  • Liaison de type de port
  • Création d'un fichier WSDL
  • Publication de l'exemple de service Web

Structure d'un document WSDL

Un document WSDL est utilisé pour décrire un service Web. Cette description est requise pour que les applications clientes puissent comprendre ce que fait réellement le service Web.

  • Le fichier WSDL contient l'emplacement du service Web et
  • Les méthodes exposées par le service Web.

Le fichier WSDL lui-même peut sembler très complexe à tout utilisateur, mais il contient toutes les informations nécessaires dont toute application cliente aurait besoin pour utiliser le service Web concerné.

Voici la structure générale d'un fichier WSDL

  • Définition
  • TargetNamespace
  • Types de données
  • messages
  • Type de port
  • Fixations
  • un service

Une chose clé à noter ici est que la définition des messages, qui est ce qui est passé par le protocole SOAP, est en fait définie dans le document WSDL.

Le document WSDL indique en fait à une application client quels sont les types de messages SOAP envoyés et acceptés par le service Web.

En d'autres termes, le WSDL est comme une carte postale qui a l'adresse d'un emplacement particulier. L'adresse fournit les coordonnées de la personne qui a livré la carte postale. Par conséquent, de la même manière, le fichier WSDL est la carte postale, qui a l'adresse du service Web qui peut fournir toutes les fonctionnalités souhaitées par le client.

Voici un diagramme de la structure d'un fichier WSDL

Structure d'un WSDL

Éléments WSDL

Le fichier WSDL contient les parties principales suivantes

  1. La balise permet de définir tous les types de données complexes, qui seront utilisés dans le message échangé entre l'application cliente et le service web. Il s'agit d'un aspect important de l'application cliente, car si le service Web fonctionne avec un type de données complexe, l'application cliente doit savoir comment traiter le type de données complexe. Les types de données tels que les flottants, les nombres et les chaînes sont tous des types de données simples, mais il peut y avoir des types de données structurées qui peuvent être fournis par le service Web.

    Par exemple, il pourrait y avoir un type de données appelé EmployeeDataType qui pourrait avoir 2 éléments appelés "EmployeeName" de type chaîne et "EmployeeID" de type nombre ou entier. Ensemble, ils forment une structure de données qui devient alors un type de données complexe.

  2. La balise permet de définir le message qui est échangé entre l'application cliente et le serveur web. Ces messages expliquent les opérations d'entrée et de sortie qui peuvent être effectuées par le service Web. Un exemple de message peut être un message qui accepte le EmployeeID d'un employé, et le message de sortie peut être le nom de l'employé basé sur l'EmpoyeeID fourni.

  3. La balise est utilisée pour encapsuler chaque message d'entrée et de sortie en une seule opération logique. Il pourrait donc y avoir une opération appelée "GetEmployee" qui combine le message d'entrée d'acceptation de EmployeeID à partir d'une application cliente, puis d'envoyer le EmployeeName comme message de sortie.

  4. La balise est utilisée pour lier l'opération au type de port particulier. Ainsi, lorsque l'application cliente appelle le type de port concerné, elle pourra alors accéder aux opérations liées à ce type de port. Les types de port sont comme les interfaces. Ainsi, si une application cliente doit utiliser un service Web, elle doit utiliser les informations de liaison pour s'assurer qu'elle peut se connecter à l'interface fournie par ce service Web.

  5. La balise est un nom donné au service Web lui-même. Au départ, lorsqu'une application cliente appelle le service Web, elle le fera en appelant le nom du service Web. Par exemple, un service Web peut être localisé à une adresse telle que http: //localhost/Guru99/Tutorial.asmx . La balise de service aura en fait l'URL définie comme http: //localhost/Guru99/Tutorial.asmx , qui indiquera en fait à l'application cliente qu'un service Web est disponible à cet emplacement.

Pourquoi WSDL

Un service Web est un composant important dans la création d'applications Web modernes. Leur objectif principal est de permettre à plusieurs applications basées sur différents langages de programmation de se parler. Par exemple, nous pouvons faire en sorte qu'une application Web .Net communique avec une application Java via un service Web.

Un service Web présente les fonctionnalités clés suivantes

  • Il est construit en utilisant le langage de programmation XML. Presque toutes les technologies modernes telles que .Net et Java ont des commandes correspondantes capables de fonctionner avec XML. Par conséquent, XML a été considéré comme le langage le plus approprié pour la création de services Web.
  • Les services Web communiquent via HTTP. HTTP est un protocole utilisé par toutes les applications Web. Par conséquent, il était juste logique de s'assurer que les services Web avaient également la capacité de fonctionner sur le protocole HTTP.
  • Les services Web sont conformes à une spécification de langage particulière. Cette spécification est définie par le W3C, qui est l'organe directeur de toutes les normes Web.
  • Les services Web ont un langage de description appelé WSDL, qui est utilisé pour décrire le service Web.

Le fichier WSDL est écrit dans un ancien XML. La raison pour laquelle il est en XML est que le fichier peut être lu par n'importe quel langage de programmation.

Ainsi, si l'application cliente était écrite en .Net, elle comprendrait le fichier XML. De même, si l'application cliente était écrite dans le langage de programmation Java, elle serait également capable d'interpréter le fichier WSDL.

Le fichier WSDL est ce qui lie tout ensemble. Dans le diagramme ci-dessus, vous pouvez voir que vous pouvez créer un service Web dans le langage .Net.

C'est donc là que le service est implémenté. Si vous n'aviez pas le fichier WSDL et que vous vouliez qu'une classe Java consomme le service Web, vous auriez besoin de beaucoup d'efforts de codage pour y parvenir.

Mais maintenant, avec le fichier WSDL qui est en XML, qui peut être compris par n'importe quel langage de programmation, vous pouvez maintenant facilement faire en sorte qu'une classe Java consomme le service Web .Net. Par conséquent, la quantité d'effort de codage est considérablement réduite.

Partie de message WSDL

Le WSDL se compose d'une section appelée "messages" qui est désignée par l' élément .

Cet élément est essentiellement utilisé pour décrire les données échangées entre le service Web et l'application cliente.

Chaque service Web aura toujours 2 types de messages,

  • L'un est pour l'entrée du service Web et l'autre pour la sortie du service Web.
  • L'entrée est utilisée pour décrire les paramètres acceptés par le service Web. Il s'agit d'un aspect important de l'application client afin qu'elle connaisse les valeurs à envoyer en tant que paramètres au service Web.
  • L'autre type de message est le message de sortie qui indique les résultats fournis par le service Web.

Chaque message, à son tour, aura un élément qui est utilisé pour décrire le paramètre utilisé par le message d'entrée et de sortie.

Vous trouverez ci-dessous un exemple simple de ce à quoi ressemble un message pour un service Web. La fonctionnalité du service Web est de fournir le nom d'un "Tutoriel" une fois qu'un "ID de Tutoriel" est soumis en tant que paramètre au service Web.

  1. Comme nous pouvons le voir, le service Web a 2 messages, un pour l'entrée et l'autre pour la sortie.
  2. Le message d'entrée est appelé TutorialNameRequest qui a un paramètre appelé TutorialID. Ce paramètre est du type number qui est spécifié par le type xsd: number
  3. Le message de sortie est appelé TutorialNameResponse qui a un paramètre appelé TutorialName. Ce paramètre est du type string qui est spécifié par le type xsd: string

Liaison de type de port

Les ports sont utilisés dans WSDL pour définir une opération complète proposée par le service Web.

Dans la rubrique précédente, nous avons vu que notre service Web fournissait 2 messages, l'un pour l'entrée appelée «TutorialNameRequest» et l'autre pour la sortie appelée «TutorialNameResponse». Ensemble, le formulaire de message d'entrée et de sortie est appelé une opération complète.

WSDL fournit un élément appelé qui est utilisé pour définir les opérations fournies par le service Web.

Donc, dans notre exemple ci-dessus, nous pouvons noter ce qui suit:

  1. Le nom du type de port qui encapsule l'opération est donné sous la forme "Tutorial_PortType".
  2. L'opération elle-même reçoit le nom de "Tutorial". Donc, notre opération fournit essentiellement un TutorialName si le TutorialID est donné comme paramètre d'entrée.
  3. Viennent ensuite nos 2 messages, un pour l'entrée et l'autre pour la sortie qui forme notre opération

En plus de l' élément , il y a aussi l' élément qui est utilisé pour définir comment les messages seront transférés.

  1. L'exemple ci-dessus montre que la liaison se compose d'un nom de liaison qui dans notre cas est donné comme "TutorialSoapBinding". La liaison en termes simples est les informations que l'application client utilise pour se lier au service Web. Une fois qu'il est effectivement lié au service Web, il a alors la possibilité d'appeler les différentes opérations qui sont exposées par le service Web.
  2. La couche de transport est donnée comme http: // ce qui signifie que les messages qui seront transférés via le protocole HTTP.

Création d'un fichier WSDL

Le fichier WSDL est créé chaque fois qu'un service Web est créé dans un langage de programmation.

Étant donné que le fichier WSDL est assez compliqué à générer à partir de rien, tous les éditeurs tels que Visual Studio pour .Net et Eclipse pour Java créent automatiquement le fichier WSDL.

Vous trouverez ci-dessous un exemple de fichier WSDL créé dans Visual Studio.




TutorialService

Le fichier WSDL ci-dessus semble très intimidant pour tout utilisateur, nous couvrirons les différentes parties en détail dans les didacticiels suivants, mais pour l'instant, examinons ce que chaque section du fichier WSDL fait réellement

Publication de l'exemple de service Web

Examinons maintenant un exemple de la façon dont nous pouvons publier un service Web et le consommer à l'aide de Visual Studio.

Dans cet exemple, nous allons créer un service Web avec une méthode Web. Cette méthode acceptera un paramètre Integer appelé «TutorialID». La méthode Web renverra ensuite une chaîne appelée «Services Web».

Nous créerons ensuite une application basée sur la console, qui consommera ce service Web et appellera notre méthode Web en conséquence.

Regardons les étapes nécessaires pour réaliser cet exemple.

Étape 1) La première étape consiste à créer votre service Web. Les étapes détaillées de la création du projet Web Asp.Net et d'un service Web ont été expliquées ici; Veuillez suivre les mêmes étapes pour créer le projet et le service Web en conséquence. L'élément clé est de saisir le code ci-dessous dans le fichier des services Web.

namespace webservic asmx{[WebService(Name = "Guru99 Web service")]public class TutorialService : System.Web.Services.WebService{[WebMethod]public string GetTutorialService(int TutoriallD){string TutorialName = "Web Services";return TutorialName;}}}

Explication du code:

  1. Ici, nous créons une méthode Web appelée «Guru99WebService». Dans cette méthode Web, nous incluons un paramètre entier qui doit être passé chaque fois que cette méthode Web est appelée.
  2. Ensuite, nous définissons une variable appelée "TutorialName" qui contiendra la valeur de chaîne de "Web Services". Il s'agit de la valeur qui sera renvoyée lors de l'appel du service Web.

Étape 2) Une fois que nous avons défini le fichier des services Web, l'étape suivante consiste à créer un projet client qui consommera ce service Web.

Créons une application console simple qui appellera ce service Web, invoquons le "Guru99WebService" et afficherons ensuite la sortie de la méthode Web dans l'écran du journal de la console. Suivez les étapes ci-dessous pour créer une application console.

Cliquez avec le bouton droit sur le fichier de solution Visual Studio et choisissez l'option Ajouter-> Nouveau projet

Étape 3) Dans cette étape,

  1. Assurez-vous de choisir d'abord l'option Windows Visual C #. Choisissez ensuite l'option de création d'une application console.
  2. Donnez un nom à votre projet qui, dans notre cas, a été donné comme "DemoApplication".

Après avoir cliqué sur le bouton OK dans l'écran ci-dessus, vous pourrez voir le projet dans l'explorateur de solutions dans Visual Studio.

Étape 4) Dans cette étape, vous définissez l'application DemoApplication Console comme projet de démarrage. Cela permet de garantir que cette application se lance en premier lorsque l'ensemble du projet Visual Studio est exécuté. Cette application console appellera à son tour le service Web qui sera automatiquement lancé par Visual Studio.

Pour terminer cette étape, cliquez avec le bouton droit sur le projet DemoApplication et choisissez l'option «Définir comme projet de démarrage».

Étape 5) La prochaine étape consiste à ajouter la référence de service de notre "Guru99Webservice" à notre application console. Cela permet à DemoApplication de référencer le service Web et toutes les méthodes Web du service Web.

Pour ce faire, cliquez avec le bouton droit sur le fichier de projet DemoApplication et choisissez l'option de menu Ajouter-> Référence de service.

Étape 6) Dans cette étape, nous fournirons les différentes valeurs requises pour ajouter notre référence de service

  1. Tout d'abord, nous devons choisir notre option de découverte. Cette option récupérera automatiquement le fichier WSDL pour notre service Web TutorialService.
  2. Ensuite, nous devons donner un nom à notre référence de service. Dans notre cas, nous lui donnons le nom de Guru99Webservice.
  3. Ensuite, nous devons développer l'option TutorialService.asmx afin que nous puissions avoir la possibilité de voir la méthode 'GetTutorialService' sur le côté droit. Ici, TutorialService.asmx est le nom de notre fichier Visual Studio .Net qui contient le code de notre service Web.
  4. Nous verrons ensuite notre méthode Web que nous avions dans notre service Web appelé "GetTutorialService"

Lorsque nous cliquons sur le bouton «OK», tout le code requis pour accéder à ce service Web sera ajouté à notre application DemoApplication Console comme indiqué ci-dessous.

La capture d'écran montre que le "Guru99Webservice" a été ajouté avec succès à notre application console.

Étape 7) L'étape suivante consiste à ajouter le code à notre application console pour accéder à la méthode Web dans notre service Web. Ouvrez le fichier de code Program.cs qui vient automatiquement avec l'application console et ajoutez le code ci-dessous

namespace DemoApplication{class Program{static void Main(string[ ] args){var client = new Guru99Webservice.Guru99WebserviceSoapClient();Console.WriteLine(client.GetTutorialService(l));Console.ReadKey();}}}

Explication du code: -

  1. La première partie consiste à choisir le fichier Program.cs. Il s'agit du fichier principal créé par Visual Studio lors de la création d'une application console. Ce fichier est ce qui est exécuté lorsque l'application console (dans notre cas, l'application de démonstration) est exécutée.
  2. Nous créons ensuite une variable appelée «client» qui sera définie sur une instance de notre référence de service qui a été créée lors d'une étape précédente. Dans notre cas, la référence du service est 'Guru99Webservice.Guru99WebserviveSoapClient ()'
  3. Nous appelons alors notre méthode Web «GetTutorialService» dans le service Web TutorialService. Rappelez-vous que notre méthode GetTutorialService accepte un paramètre entier, nous transmettons donc simplement un paramètre entier à la méthode Web.
  4. Cette dernière ligne est juste pour s'assurer que l'écran du journal de la console reste actif afin que nous puissions voir la sortie. Cette commande attendra juste une entrée de l'utilisateur.

Production

Lorsque toutes les étapes ci-dessus sont suivies et que l'application DemoApplication est exécutée, la sortie ci-dessous s'affiche.

À partir de la sortie, nous pouvons clairement voir que la DemoApplication appelle notre service Web et que la chaîne retournée par le service Web est affichée dans notre journal de la console.

Résumé

  • La forme complète de WSDL est le langage de description de services Web
  • Un document WSDL est un document utilisé pour décrire un service Web. Il est essentiel pour toute application cliente de savoir où se trouve le service Web. Il permet également à l'application cliente de comprendre les méthodes disponibles dans le service Web.
  • Le fichier WSDL facilite l'implémentation du service Web dans un langage de programmation et l'appel à partir d'un autre langage de programmation.
  • Le document WSDL se compose normalement d'un message. Pour chaque méthode Web, il y a 2 messages, l'un pour l'entrée et l'autre pour la sortie. Ensemble, ils forment une opération.
  • Les fichiers de langage de description de services Web (signifie WSDL) sont normalement créés dans l'éditeur qui est utilisé pour le langage de programmation correspondant.
  • Nous avons vu comment nous pouvons consommer un service Web dans Visual Studio. Cela peut être fait en créant un autre projet qui est une application console. Ensuite, en ajoutant une référence de service, nous sommes alors en mesure d'accéder aux méthodes Web de notre service Web.