Qu'est-ce que WSDL ? Définition et exemples

⚡ Résumé intelligent

WSDL (services Web DescriptWSDL (langage de description de service Web) est un fichier XML qui indique à une application cliente le fonctionnement d'un service Web et la manière de l'appeler. Cette ressource explique la structure WSDL, ses éléments, les messages, les types de ports, les liaisons et propose un exemple de publication.

  • 📄 Définition principale : WSDL est un fichier XML qui décrit l'emplacement, le fonctionnement et les messages qu'un service web accepte et renvoie.
  • ???? Structure des documents : Un document WSDL est organisé en éléments types, message, portType, binding et service, enveloppés dans une racine de définitions.
  • 🔤 Éléments clé: L'élément types définit les types de données, message définit les données échangées, portType regroupe les opérations et binding les associe à un protocole.
  • ✉️ Messages et ports : Chaque méthode web utilise un message d'entrée et un message de sortie qui forment ensemble une seule opération exposée via un type de port.
  • Généré automatiquement : Les éditeurs tels que Visual Studio et Eclipse génère automatiquement le fichier WSDL, que les applications clientes utilisent pour appeler le service.

Qu'est-ce que WSDL ?

Qu’est-ce que WSDL ?

Services Web DescriptLangue ionique (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 la partie la plus importante des services Web, à savoir le WSDL, ou Web Services. DescriptLangage ionique. Il agit comme le contract entre le service web et tout client qui souhaite le consommer.

Structure d'un document WSDL

Un document WSDL sert à décrire un service web. Cette description est nécessaire pour que les applications clientes puissent comprendre le fonctionnement du service web.

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

Le fichier WSDL peut paraître très complexe à un utilisateur lambda, mais il contient toutes les informations nécessaires à toute application cliente pour utiliser le service web correspondant. Voici la structure générale d'un fichier WSDL :

  • Définition
  • TargetEspace de noms
  • Types de données
  • Messages
  • Type de port
  • fixations
  • Services

Un point essentiel à noter ici est la définition des messages, c'est-à-dire ce qui est transmis par le Protocole SAVONLe type de message SOAP est défini dans le document WSDL. Ce dernier indique à une application cliente les types de messages SOAP envoyés et reçus par le service Web.

En d'autres termes, le WSDL est comme une carte postale portant l'adresse d'un lieu précis. Cette adresse indique où le message doit être livré. De la même manière, le fichier WSDL est la carte postale qui contient l'adresse du service web capable de 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 les principales parties suivantes :

  1. Le L'étiquette `<type>` sert à définir tous les types de données complexes utilisés dans les messages échangés entre l'application cliente et le service web. Ceci est important car si le service web manipule un type de données complexe, l'application cliente doit savoir comment le traiter. Les types de données simples sont les nombres à virgule flottante, les nombres en virgule flottante et les chaînes de caractères. Cependant, le service web peut fournir des types de données structurés. Par exemple, un type de données nommé `EmployeeDataType` peut comporter deux éléments : `EmployeeName` (de type chaîne de caractères) et `EmployeeID` (de type nombre ou entier). Ensemble, ils forment un type de données complexe.
  2. Le L'étiquette sert à définir le message échangé entre l'application cliente et le serveur web. Ces messages décrivent les opérations d'entrée et de sortie possibles du service web. Par exemple, un message peut recevoir l'identifiant d'un employé (EmployeeID) et renvoyer son nom à partir de cet identifiant.
  3. Le 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 consistant à accepter l'EmployeeID d'une application client, puis à envoyer le EmployeeName comme message de sortie.
  4. Le L'étiquette sert à lier une opération à un type de port spécifique. Ainsi, lorsqu'une application cliente appelle le port correspondant, elle peut accéder aux opérations qui lui sont associées. Les types de port sont comparables à des interfaces. Par conséquent, si une application cliente souhaite utiliser un service web, elle doit utiliser les informations de liaison pour pouvoir se connecter à l'interface fournie par ce service.
  5. Le Le nom du service web est un nom donné à ce dernier. Initialement, lorsqu'une application cliente appelle le service web, elle le fait en utilisant ce nom. Par exemple, un service web peut être accessible à une adresse telle que http://localhost/.Guru99/Tutorial.asmx. L'étiquette de service comportera le URL défini, qui indique à l'application cliente qu'un service Web est disponible à cet emplacement.

Pourquoi WSDL

Un service web est un composant essentiel du développement des applications web modernes. Son objectif principal est de permettre à plusieurs applications, écrites dans différents langages de programmation, de communiquer entre elles. Par exemple, une application web .NET peut communiquer avec un service web. Java application via un service Web.

Un service web possède les caractéristiques clés suivantes :

  • Il est construit à l'aide du langage de programmation XML. Presque toutes les technologies modernes telles que .NET et Java avoir des commandes correspondantes qui ont la capacité 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 s'assurer 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 standard. Ce format permet à n'importe quel langage de programmation de le lire. Ainsi, si l'application cliente est écrite en .NET, elle pourra interpréter le fichier XML. De même, si l'application cliente est écrite en… Java Si le langage de programmation est connu, il pourra également interpréter le fichier WSDL.

Besoin de WSDL

Le fichier WSDL est l'élément qui assure la cohérence de l'ensemble. Le schéma ci-dessus montre qu'il est possible de créer un service web en langage .NET. C'est donc ici que le service est implémenté. Si vous ne disposiez pas du fichier WSDL et que vous souhaitiez… Java Pour créer une classe consommant le service web, il aurait fallu beaucoup de développement. Mais maintenant, grâce au fichier WSDL, au format XML et interprétable par n'importe quel langage de programmation, vous pouvez facilement en créer une. Java la classe 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 sert essentiellement à 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 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.

Voici un exemple simple de message pour un service web. Ce service a pour fonction de fournir le nom d'un tutoriel une fois qu'un identifiant de tutoriel lui a été transmis en paramètre.

Partie du message WSDL

  1. Comme on peut le constater, le service web comporte 2 messages, un pour l'entrée et l'autre pour la sortie.
  2. Le message d'entrée, appelé TutorialNameRequest, comporte un paramètre nommé TutorialID. Ce paramètre est de type numérique, spécifié par le type xsd:number.
  3. Le message de sortie est nommé TutorialNameResponse et comporte un paramètre appelé TutorialName. Ce paramètre est de type chaîne de caractères, spécifié par le type xsd:string.

Liaison du type de port

Dans WSDL, les ports servent à définir une opération complète proposée par le service web. Dans la section précédente, nous avons vu que notre service web fournissait deux messages : un message d’entrée, « TutorialNameRequest », et un message de sortie, « TutorialNameResponse ». Ensemble, ces messages constituent une opération complète.

WSDL fournit un élément appelé qui permet de définir les opérations fournies par le service Web.

Type de port Liaison type de port

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

  1. Le nom du type de port qui encapsule l'opération est « Tutorial_PortType ».
  2. L'opération elle-même est nommée « Tutoriel ». Notre opération fournit donc un nom de tutoriel si l'identifiant du tutoriel est fourni comme paramètre d'entrée.
  3. Viennent ensuite nos deux messages, l'un pour l'entrée et l'autre pour la sortie, qui constituent notre opération.

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 de type de port

  1. L'exemple ci-dessus montre que la liaison consiste en un nom, ici « TutorialSoapBinding ». En termes simples, la liaison correspond aux informations utilisées par l'application cliente pour se connecter au service web. Une fois connectée, elle peut appeler les différentes opérations proposées par le service web.
  2. La couche 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 développé dans n'importe quel langage de programmation. Étant donné la complexité de sa génération à partir de zéro, tous les éditeurs tels que Visual Studio pour .NET et Eclipse pour Java créer 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 peut paraître complexe à première vue. Nous aborderons ses différentes parties en détail dans les tutoriels suivants, mais pour l'instant, voici un aperçu du rôle de chaque section.

Publication de l'exemple de service Web

Voyons maintenant comment publier et utiliser un service web avec Visual Studio. Nous allons créer un service web avec une méthode Web. Cette méthode acceptera un paramètre entier nommé « TutorialID » et renverra une chaîne de caractères appelée « Web Services ».

Nous allons ensuite créer une application console qui consommera ce service web et appellera notre méthode web en conséquence. Examinons les étapes nécessaires à la réalisation de 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 Le projet web et le service web créés ont été expliqués. iciVeuillez suivre les mêmes étapes pour créer le projet et le service web. L'élément clé est d'insérer le code ci-dessous dans le fichier du service web.

Publication du code du service Web d'exemple

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

Code Explication:

  1. Nous créons ici une méthode Web 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 le fichier de services Web défini, 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 et invoquera le «GuruSaisissez « 99WebService » et affichez le résultat de la méthode Web dans la console. Pour créer une application console, procédez comme suit : cliquez avec le bouton droit sur le fichier de solution Visual Studio et sélectionnez Ajouter > Nouveau projet.

Publication de l'exemple de service Web : ajouter un nouveau projet

É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 d'application console 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 de Visual Studio.

Explorateur de solutions de l'exemple de publication du service Web

Étape 4) Dans cette étape, vous allez définir l'application console DemoApplication comme projet de démarrage. Ainsi, cette application se lancera en premier lors de l'exécution complète du projet Visual Studio. L'application console appellera ensuite le service web, qui sera automatiquement lancé par Visual Studio. Pour terminer, cliquez avec le bouton droit sur le projet DemoApplication et sélectionnez « Définir comme projet de démarrage ».

Publication de l'exemple de service Web en tant que projet de démarrage

Étape 5) L'étape suivante consiste à ajouter la référence de service de notre «GuruAjoutez le service web « 99Webservice » à votre application console. Cela permettra à DemoApplication de référencer le service web et toutes ses méthodes. Pour ce faire, cliquez avec le bouton droit sur le fichier projet de DemoApplication et sélectionnez Ajouter > Référence de service.

Publication de l'exemple de service Web : ajout d'une référence de service

Étape 6) Dans cette étape, nous fournirons les différentes valeurs nécessaires à l'ajout de notre référence de service.

  1. Tout d'abord, nous devons choisir notre option de découverte. Cette option détectera automatiquement le fichier WSDL de 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 Guru99Service Web.
  3. Il faut ensuite développer l'option TutorialService.asmx pour afficher la méthode « GetTutorialService » à droite. TutorialService.asmx est le nom de notre fichier .NET Visual Studio contenant le code de notre service web.
  4. Nous verrons ensuite notre méthode Web que nous avions dans notre service Web, appelée « GetTutorialService ».

Publication des valeurs de référence du service d'exemple de service Web

Lorsque nous cliquons sur le bouton « OK », tout le code nécessaire pour accéder à ce service Web sera ajouté à notre application console DemoApplication, comme indiqué ci-dessous. La capture d'écran montre que le « Guru« 99Webservice » a été ajouté avec succès à notre application console.

Publication du service d'exemple de service Web ajoutée

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

Publication du code du programme d'exemple de service Web (Program.cs)

namespace DemoApplication
{
   class Program
   {
      static void Main(string[] args)
      {
         var client = new Guru99Webservice.Guru99WebserviceSoapClient();

         Console.WriteLine(client.GetTutorialService(1));

         Console.ReadKey();
      }
   }
}

Code Explication:

  1. La première étape consiste à sélectionner le fichier Program.cs. Il s'agit du fichier principal créé par Visual Studio lors de la création d'une application console. C'est ce fichier qui est exécuté au lancement de l'application console (dans notre cas, DemoApplication).
  2. Nous créons ensuite une variable appelée « client » qui sera initialisée avec une instance de notre référence de service créée précédemment. Dans notre cas, la référence de service est « Guru99Service Web.Guru99WebserviceSoapClient()'.
  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 lui transmettons donc simplement un paramètre entier.
  4. Cette dernière ligne sert simplement à maintenir l'écran de journalisation de la console actif afin de pouvoir visualiser la sortie. Cette commande attendra une saisie de l'utilisateur.

Sortie

Une fois toutes les étapes ci-dessus suivies et l'application de démonstration exécutée, le résultat ci-dessous s'affichera.

Publication de l'exemple de résultat du 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 dans notre journal de console.

FAQ

L'IA peut lire un WSDL complexe, expliquer son fonctionnement en langage clair, générer des exemples de requêtes et signaler les incohérences entre les composants.tracet la mise en œuvre. Cela accélère l'intégration avec les services Web SOAP anciens ou inconnus.

Oui. Les assistants IA peuvent transformer une définition WSDL en stubs clients, en modèles de données et en exemples d'appels dans des langages tels que C#. Java, PythonLes développeurs doivent néanmoins vérifier le code généré afin de s'assurer de l'exactitude des espaces de noms et de la gestion des erreurs.

SOAP est le protocole de messagerie qui transporte les requêtes et réponses XML. WSDL est le fichier de description qui indique au client les opérations offertes par un service web SOAP et comment les appeler. Ils sont utilisés conjointement.

Oui. WSDL reste la norme pour les services Web SOAP dans les systèmes d'entreprise, bancaires et gouvernementaux nécessitant une configuration formelle.tracLes API REST plus récentes utilisent généralement OpenAPI (Swagger), mais de nombreuses intégrations héritées dépendent encore de WSDL.

Résumez cet article avec :