Tutoriel WSDL : Langage de description de services Web avec exemple

Qu’est-ce que WSDL ?

Langage de description des services Web (WSDL) est un fichier XML qui indique essentiellement à l'application client ce que fait le service Web. Le fichier WSDL permet de 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 langage de description de services Web.

Le fichier WSDL permet de décrire en un mot 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.

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 paraître très complexe.plex à tout utilisateur, mais il contient toutes les informations nécessaires dont toute application client aurait besoin pour utiliser le service Web concerné.

Ci-dessous la structure générale d'un fichier WSDL

  • Définition
  • Espace de noms cible
  • Types de données
  • Mes Messages
  • Type de port
  • fixations
  • service

Un élément clé à noter ici est la définition des messages, qui est ce qui est transmis par le Protocole SAVON est en fait défini dans le document WSDL.

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

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

<!-- WSDL definition structure -->
<definitions     
		name="Guru99Service"
        targetNamespace=http://example.org/math/
        xmlns=http://schemas.xmlsoap.org/wsdl/>   
	<!-- abstract definitions -->   
		<types> ...    
			<message> ...   
			<portType> ...

   <!-- concrete definitions -->  
		<binding> ...   
		<service> ...
</definition>

Vous trouverez ci-dessous un schéma de la structure d'un fichier WSDL

Structure d'un document WSDL
Structure d'un WSDL

Éléments WSDL

Le fichier WSDL contient ce qui suitwing parties principales

  1. Le la balise est utilisée pour définir toutes les complex types de données, qui seront utilisés dans le message échangé entre l'application client et le service Web. Il s'agit d'un aspect important de l'application client, car si le service Web fonctionne avec un complex type de données, l'application client doit savoir comment traiter le complex Type de données. Types de données tels que float, numbers, et les chaînes sont tous des types de données simples, mais il peut exister des types de données structurés 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 numéro ou entier. Ensemble, ils forment une structure de données qui devient ensuite un complex type de données.
  2. Le La balise est utilisée pour définir le message qui est échangé entre l'application client et le serveur Web. Ces messages expliqueront l'entrée et la sortie operaopérations pouvant être effectuées par le service Web. Un exemple de message peut être un message qui accepte l'EmpoyeeID d'un employé, et le message de sortie peut être le nom de l'employé en fonction de l'EmpoyeeID fourni.
  3. Le La balise est utilisée pour encapsuler chaque message d'entrée et de sortie dans un seul message logique. operation. Il pourrait donc y avoir un operation appelée « GetEmployee » qui combine le message d’entrée consistant à accepter l’EmployeeID d’une application client, puis à envoyer le EmployeeName comme message de sortie.
  4. Le la balise est utilisée pour lier le operation au type de port particulier. Ainsi, lorsque l'application client appelle le type de port concerné, elle pourra alors accéder au operations liées à ce type de port. Les types de ports sont comme les interfaces. Ainsi, si une application client doit utiliser un service Web, elle doit utiliser les informations de liaison pour garantir qu'elle peut se connecter à l'interface fournie par ce service Web.
  5. Le La balise est un nom donné au service Web lui-même. Initialement, lorsqu'une application client 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 . L'étiquette de service aura en fait l'URL définie comme http://localhost/Guru99/Tutorial.asmx, qui indiquera en fait à l'application client qu'un service Web est disponible à cet emplacement.

Pourquoi WSDL

Un service Web est un élément important dans la création d’applications Web modernes. Leur objectif principal est de permettre à plusieurs applications construites sur différents langages de programmation de communiquer entre elles. Par exemple, nous pouvons demander à une application Web .Net de communiquer avec un Java application via un service Web.

Un service Web a la suitewing principales caractéristiques

  • Il est construit en utilisant le langage de programmation XML. Presque toutes les technologies modernes telles que .Net et Java disposent de commandes correspondantes capables de fonctionner avec XML. Par conséquent, XML a été considéré comme le langage le plus approprié pour créer des services Web.
  • Les services Web communiquent via HTTP. HTTP est un protocole utilisé par toutes les applications Web. Il était donc logique de garantir que les services Web puissent également fonctionner via 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'organisme directeur de tous les standards du Web.
  • Les services Web disposent d'un langage de description appelé WSDL, qui est utilisé pour décrire le service Web.

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

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

Besoin de WSDL

Le fichier WSDL est ce qui lie tout ensemble. À partir du 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 ne disposiez pas du fichier WSDL et souhaitiez 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 au format XML, qui peut être compris par n'importe quel langage de programmation, vous pouvez désormais facilement faire en sorte qu'une classe Java consomme le service Web .Net. Par conséquent, l’effort de codage est considérablement réduit.

Partie du message WSDL

Le WSDL se compose d'une section appelée « messages » qui est désignée par le .

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

Chaque service web aura toujours 2 types de messages,

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

Chaque message, à son tour, aura un élément 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 destiné à un service Web. La fonctionnalité du service Web est de fournir le nom d'un « Tutoriel » une fois qu'un « ID de didacticiel » est soumis en tant que paramètre au service Web.

Partie du message WSDL

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

Liaison du type de port

Les ports sont utilisés dans WSDL pour définir un operation qui est proposée par le service Web.

Dans la rubrique précédente, nous avons vu que notre service Web fournissait 2 messages, 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 connu comme un formulaire complet. operation.

WSDL fournit un élément appelé qui sert à définir le operafonctions fournies par le service Web.

Liaison du type de port

Ainsi, dans notre exemple ci-dessus, nous pouvons noter ce qui suitwing:

  1. Le nom du type de port qui encapsule le operation est donnée sous la forme « Tutorial_PortType ».
  2. Le operaLa tion elle-même reçoit le nom de « Tutorial ». Donc notre operation 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 constituent notre operaproduction

En plus de la élément, il y a aussi l'élément élément qui sert à définir la manière dont les messages seront transférés.

Liaison du type de port

  1. L'exemple ci-dessus montre que la liaison consiste en un nom de liaison qui dans notre cas est donné comme « TutorialSoapBinding ». En termes simples, la liaison désigne les informations que l'application client utilise pour se lier réellement au service Web. Une fois effectivement lié au service web, il a alors la possibilité d'appeler les différents operales situations exposées par le service Web.
  2. La couche de transport est indiquée par http://, ce qui signifie que les messages 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 n'importe quel langage de programmation.

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

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

<?xml version="1.0"?>
<definitions name="Tutorial"             
		targetNamespace=http://Guru99.com/Tutorial.wsdl           
        xmlns:tns=http://Guru99.com/Tutorial.wsdl            
        xmlns:xsd1=http://Guru99.com/Tutorial.xsd           
        xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/
        xmlns="http://schemas.xmlsoap.org/wsdl/"> 
   <types>    
   		<schema targetNamespace=http://Guru99.com/Tutorial.xsd    
        xmlns="http://www.w3.org/2000/10/XMLSchema">
        
        <element name="TutorialNameRequest">       
        	<complexType>         
            	<all>            
                	<element name="TutorialName" type="string"/>        
                </all>      
            </complexType>     
       </element>    
       <element name="TutorialIDRequest">       
       		<complexType>           
            	<all>           
                	<element name="TutorialID" type="number"/>         
                </all>      
            </complexType>     
       </element>    
    </schema>
 </types>  
 <message name="GetTutorialNameInput">   
 	<part name="body" element="xsd1:TutorialIDRequest"/>  
 </message> 
 <message name="GetTutorialNameOutput">  
 	<part name="body" element="xsd1:TutorialNameRequest"/>
 </message> 
 <portType name="TutorialPortType">  
 	<operation name="GetTutorialName">    
    	<input message="tns:GetTutorialNameInput"/>     
        <output message="tns:GetTutorialNameOutput"/>   
    </operation>  
  </portType> 
  <binding name="TutorialSoapBinding" type="tns:TutorialPortType">  
  <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>  
 	 <operation name="GetTutorialName">    
  		<soap:operation soapAction="http://Guru99.com/GetTutorialName"/>   
        	<input>   
            	<soap:body use="literal"/>   
            </input>  
        <output>      
   <soap:body use="literal"/>   
 </output>   
 </operation>  
 </binding>  
 
 <service name="TutorialService">   
 	<documentation>TutorialService</documentation>  
    <port name="TutorialPort" binding="tns:TutorialSoapBinding">     
    	<soap:address location="http://Guru99.com/Tutorial"/>
    </port>
 </service>
</definitions>

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, jetons un coup d'œil récapitulatif à ce que fait réellement chaque section du fichier WSDL.

Publication de l'exemple de service Web

Voyons maintenant un exemple de la façon dont nous pouvons publier un service Web et le consommer en utilisant Visual Studio.

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

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

Examinons 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 façon dont le Asp.Net un projet Web et un service Web sont créés a été expliqué ici; Veuillez suivre les mêmes étapes pour créer le projet et le service Web en conséquence. L'élément clé consiste à saisir le code ci-dessous dans le fichier des services Web.

Publication de l'exemple de service 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 WebMethod appelée « Guru99WebService ». Dans cette méthode Web, nous incluons un paramètre entier qui doit être transmis 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 ». C'est 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, invoquera le « Guru99WebService », puis affichera 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.

Faites un clic droit sur le Visual Studio fichier de solution et choisissez l’option Ajouter->Nouveau projet

Publication de l'exemple de service Web

Étape 3) Dans cette étape,

  1. Assurez-vous de choisir d'abord le visuel C# Windows option. 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 ».

Publication de l'exemple de service Web

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.

Publication de l'exemple de service Web

Étape 4) Au cours de cette étape, vous définissez l'application DemoApplication Console comme projet de démarrage. Ceci est fait pour garantir que cette application se lance en premier lorsque l'intégralité de Visual Studio le projet 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 ».

Publication de l'exemple de service Web

Étape 5) L'étape suivante consiste à ajouter la référence de service de notre « Guru99Webservice » à notre application console. Ceci est fait pour que DemoApplication puisse 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.

Publication de l'exemple de service Web

Étape 6) Dans cette étape, nous fournirons les différentes valeurs nécessaires 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 de pouvoir voir la méthode « GetTutorialService » sur le côté droit. Ici TutorialService.asmx est le nom de notre Visual Studio Fichier .Net qui contient le code de notre service Web.
  4. Nous verrons ensuite notre méthode Web que nous avions dans notre service web connue sous le nom de « GetTutorialService »

Publication de l'exemple de service Web

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.

Publication de l'exemple de service Web

É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 fourni automatiquement avec l'application console et ajoutez le code ci-dessous

Publication de l'exemple de service Web

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 lorsqu'une application console est créée. 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 créée lors d'une étape précédente. Dans notre cas, la référence du service est 'Guru99Webservice.Guru99WebserviveSoapClient()'
  3. Nous appelons ensuite notre méthode Web 'GetTutorialService' dans le service Web TutorialService. N'oubliez pas 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 sert simplement à garantir que l'écran du journal de la console reste actif afin que nous puissions voir la sortie. Cette commande attendra simplement une entrée de l'utilisateur.

Sortie

Lorsque toutes les étapes ci-dessus sont suivies et que DemoApplication est exécuté, la sortie ci-dessous sera affichéeyed.

Publication de l'exemple de service Web

À partir du résultat, nous pouvons clairement voir que DemoApplication appelle notre service Web et que la chaîne renvoyée par le service Web est affichée.yed dans notre journal de 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 client de savoir où se trouve le service Web. Il permet également à l'application client de comprendre les méthodes disponibles dans le service Web.
  • Le fichier WSDL permet d'implémenter très facilement le service Web dans un langage de programmation et d'être appelé à partir d'un langage de programmation différent.
  • Le document WSDL consiste normalement en 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 un operation.
  • Les fichiers Web Services Description Language (WSDL) sont normalement créés dans l'éditeur 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 pouvons alors accéder aux méthodes Web de notre service Web.