WSDL-Lernprogramm: Web Services-Beschreibungssprache mit Beispiel

Inhaltsverzeichnis:

Anonim

Was ist WSDL?

Die WSDL ( Web Services Description Language ) ist eine XML-basierte Datei, die der Clientanwendung im Wesentlichen mitteilt, was der Webdienst tut. Die WSDL-Datei wird verwendet, um kurz zu beschreiben, was der Webdienst tut, und gibt dem Client alle Informationen, die erforderlich sind, um eine Verbindung zum Webdienst herzustellen und alle vom Webdienst bereitgestellten Funktionen zu nutzen.

In diesem Tutorial konzentrieren wir uns auf den letzten Punkt, der der wichtigste Teil von Webdiensten ist, nämlich die WSDL oder die Beschreibungssprache für Webdienste.

Die WSDL-Datei wird verwendet, um kurz zu beschreiben, was der Webdienst tut, und gibt dem Client alle Informationen, die erforderlich sind, um eine Verbindung zum Webdienst herzustellen und alle vom Webdienst bereitgestellten Funktionen zu nutzen.

In diesem Tutorial lernen Sie:

  • Struktur eines WSDL-Dokuments
  • WSDL-Elemente
  • Warum WSDL
  • WSDL-Nachrichtenteil
  • Porttypbindung
  • WSDL-Datei erstellen
  • Veröffentlichen des Webdienstbeispiels

Struktur eines WSDL-Dokuments

Ein WSDL-Dokument wird verwendet, um einen Webdienst zu beschreiben. Diese Beschreibung ist erforderlich, damit Clientanwendungen verstehen können, was der Webdienst tatsächlich tut.

  • Die WSDL-Datei enthält den Speicherort des Webdienstes und
  • Die Methoden, die vom Webdienst verfügbar gemacht werden.

Die WSDL-Datei selbst kann für jeden Benutzer sehr komplex aussehen, enthält jedoch alle erforderlichen Informationen, die eine Clientanwendung zur Verwendung des entsprechenden Webdienstes benötigen würde.

Unten finden Sie die allgemeine Struktur einer WSDL-Datei

  • Definition
  • TargetNamespace
  • Datentypen
  • Mitteilungen
  • Porttyp
  • Bindungen
  • Bedienung

Eine wichtige Sache, die hier zu beachten ist, ist, dass die Definition von Nachrichten, die vom SOAP-Protokoll übergeben wird, tatsächlich im WSDL-Dokument definiert ist.

Das WSDL-Dokument teilt einer Clientanwendung tatsächlich mit, welche Arten von SOAP-Nachrichten vom Webdienst gesendet und akzeptiert werden.

Mit anderen Worten, die WSDL ist wie eine Postkarte mit der Adresse eines bestimmten Ortes. Die Adresse enthält die Details der Person, die die Postkarte geliefert hat. Auf die gleiche Weise ist die WSDL-Datei die Postkarte, die die Adresse des Webdienstes enthält, der alle vom Client gewünschten Funktionen bereitstellen kann.

Unten sehen Sie ein Diagramm der Struktur einer WSDL-Datei

Struktur einer WSDL

WSDL-Elemente

Die WSDL-Datei enthält die folgenden Hauptteile

  1. Das -Tag wird verwendet, um alle komplexen Datentypen zu definieren, die in der Nachricht verwendet werden, die zwischen der Clientanwendung und dem Webdienst ausgetauscht wird. Dies ist ein wichtiger Aspekt der Clientanwendung. Wenn der Webdienst mit einem komplexen Datentyp arbeitet, sollte die Clientanwendung wissen, wie der komplexe Datentyp verarbeitet wird. Datentypen wie Float, Zahlen und Zeichenfolgen sind einfache Datentypen. Es kann jedoch auch strukturierte Datentypen geben, die vom Webdienst bereitgestellt werden können.

    Beispielsweise könnte es einen Datentyp namens EmployeeDataType geben, der zwei Elemente mit dem Namen "EmployeeName" vom Typ string und "EmployeeID" vom Typ number oder integer enthalten könnte. Zusammen bilden sie eine Datenstruktur, die dann zu einem komplexen Datentyp wird.

  2. Das -Tag wird verwendet, um die Nachricht zu definieren, die zwischen der Clientanwendung und dem Webserver ausgetauscht wird. Diese Meldungen erläutern die Eingabe- und Ausgabeoperationen, die vom Webdienst ausgeführt werden können. Ein Beispiel für eine Nachricht kann eine Nachricht sein, die die Mitarbeiter-ID eines Mitarbeiters akzeptiert, und die Ausgabenachricht kann der Name des Mitarbeiters sein, der auf der angegebenen Empoyee-ID basiert.

  3. Das -Tag wird verwendet, um jede Eingabe- und Ausgabemeldung in einer logischen Operation zusammenzufassen. Es könnte also eine Operation namens "GetEmployee" geben, die die Eingabenachricht kombiniert, die EmployeeID von einer Clientanwendung zu akzeptieren und dann den EmployeeName als Ausgabemeldung zu senden.

  4. Das -Tag wird verwendet, um die Operation an den bestimmten Porttyp zu binden. Auf diese Weise kann die Clientanwendung beim Aufrufen des entsprechenden Porttyps auf die Vorgänge zugreifen, die an diesen Porttyp gebunden sind. Porttypen sind wie Schnittstellen. Wenn eine Clientanwendung einen Webdienst verwenden muss, muss sie die Bindungsinformationen verwenden, um sicherzustellen, dass sie eine Verbindung zu der von diesem Webdienst bereitgestellten Schnittstelle herstellen kann.

  5. Das -Tag ist ein Name, der dem Webdienst selbst zugewiesen wird. Wenn eine Clientanwendung den Webdienst aufruft, ruft sie zunächst den Namen des Webdienstes auf. Ein Webdienst kann sich beispielsweise unter einer Adresse wie http: //localhost/Guru99/Tutorial.asmx befinden . Für das Service-Tag ist tatsächlich die URL http: //localhost/Guru99/Tutorial.asmx definiert , die der Clientanwendung tatsächlich mitteilt , dass an diesem Speicherort ein Webdienst verfügbar ist.

Warum WSDL

Ein Webdienst ist eine wichtige Komponente beim Erstellen moderner Webanwendungen. Ihr Hauptzweck besteht darin, mehreren Anwendungen, die auf verschiedenen Programmiersprachen basieren, die Möglichkeit zu geben, miteinander zu kommunizieren. Beispielsweise kann eine .NET-Webanwendung über einen Webdienst mit einer Java-Anwendung kommunizieren.

Ein Webdienst verfügt über die folgenden Hauptfunktionen

  • Es wird mit der Programmiersprache XML erstellt. Fast alle modernen Technologien wie .Net und Java verfügen über entsprechende Befehle, die mit XML arbeiten können. Daher wurde XML als die am besten geeignete Sprache zum Erstellen von Webdiensten verwendet.
  • Webdienste kommunizieren über HTTP. HTTP ist ein Protokoll, das von allen webbasierten Anwendungen verwendet wird. Daher war es nur sinnvoll sicherzustellen, dass Webdienste auch über das HTTP-Protokoll arbeiten können.
  • Webdienste entsprechen einer bestimmten Sprachspezifikation. Diese Spezifikation wird vom W3C festgelegt, dem Leitungsgremium für alle Webstandards.
  • Webdienste haben eine Beschreibungssprache, die als WSDL bezeichnet wird und zur Beschreibung des Webdienstes verwendet wird.

Die WSDL-Datei ist in einfachem altem XML geschrieben. Der Grund, warum es in XML ist, ist, dass die Datei von jeder Programmiersprache gelesen werden kann.

Wenn die Clientanwendung also in .Net geschrieben wurde, würde sie die XML-Datei verstehen. Wenn die Clientanwendung in der Programmiersprache Java geschrieben wäre, könnte sie auch die WSDL-Datei interpretieren.

Die WSDL-Datei verbindet alles miteinander. Aus dem obigen Diagramm können Sie ersehen, dass Sie einen Webdienst in der .NET-Sprache erstellen können.

Hier wird also der Service implementiert. Wenn Sie nicht über die WSDL-Datei verfügen und möchten, dass eine Java-Klasse den Webdienst verwendet, benötigen Sie viel Codierungsaufwand, um dies zu erreichen.

Mit der WSDL-Datei in XML, die von jeder Programmiersprache verstanden werden kann, können Sie jetzt problemlos eine Java-Klasse den .Net-Webdienst verwenden lassen. Daher wird der Codierungsaufwand stark reduziert.

WSDL-Nachrichtenteil

Die WSDL besteht aus einem Abschnitt namens "messages", der durch das Element gekennzeichnet ist.

Dieses Element wird im Wesentlichen verwendet, um die Daten zu beschreiben, die zwischen dem Webdienst und der Clientanwendung ausgetauscht werden.

Jeder Webdienst hat immer zwei Arten von Nachrichten:

  • Einer ist für die Eingabe des Webdienstes und der andere für die Ausgabe des Webdienstes.
  • Die Eingabe wird verwendet, um die Parameter zu beschreiben, die vom Webdienst akzeptiert werden. Dies ist ein wichtiger Aspekt der Clientanwendung, damit sie die Werte kennt, die als Parameter an den Webdienst gesendet werden sollen.
  • Der andere Nachrichtentyp ist die Ausgabenachricht, die angibt, welche Ergebnisse vom Webdienst bereitgestellt werden.

Jede Nachricht hat wiederum ein -Element, mit dem der von der Eingabe- und Ausgabemeldung verwendete Parameter beschrieben wird.

Im Folgenden finden Sie ein einfaches Beispiel dafür, wie eine Nachricht für einen Webdienst aussieht. Die Funktionalität des Webdienstes besteht darin, den Namen eines "Lernprogramms" anzugeben, sobald eine "Lernprogramm-ID" als Parameter an den Webdienst gesendet wurde.

  1. Wie wir sehen können, hat der Webdienst zwei Nachrichten, eine für die Eingabe und eine für die Ausgabe.
  2. Die Eingabenachricht heißt TutorialNameRequest und enthält einen Parameter namens TutorialID. Dieser Parameter hat die Typennummer, die vom Typ xsd: number angegeben wird
  3. Die Ausgabenachricht heißt TutorialNameResponse und enthält einen Parameter namens TutorialName. Dieser Parameter ist vom Typ string, der vom Typ xsd: string angegeben wird

Porttypbindung

Ports werden in WSDL verwendet, um einen vollständigen Vorgang zu definieren, der vom Webdienst angeboten wird.

Im vorherigen Thema haben wir gesehen, dass unser Webdienst zwei Nachrichten bereitgestellt hat, eine für die Eingabe mit dem Namen "TutorialNameRequest" und die andere für die Ausgabe mit dem Namen "TutorialNameResponse". Zusammen wird das Eingabe- und Ausgabemeldungsformular als eine vollständige Operation bezeichnet.

WSDL bietet ein Element namens , mit dem die vom Webdienst bereitgestellten Vorgänge definiert werden.

In unserem obigen Beispiel können wir also Folgendes feststellen:

  1. Der Name des Porttyps, der die Operation kapselt, wird als "Tutorial_PortType" angegeben.
  2. Die Operation selbst erhält den Namen "Tutorial". Unsere Operation liefert also grundsätzlich einen TutorialName, wenn die TutorialID als Eingabeparameter angegeben wird.
  3. Als nächstes kommen unsere 2 Nachrichten, eine für die Eingabe und die andere für die Ausgabe, die unsere Operation bilden

Neben dem -Element gibt es auch das -Element, mit dem definiert wird, wie die Nachrichten übertragen werden.

  1. Das obige Beispiel zeigt, dass die Bindung aus einem Bindungsnamen besteht, der in unserem Fall als "TutorialSoapBinding" angegeben wird. Einfach ausgedrückt sind die Informationen, die die Clientanwendung verwendet, um sich tatsächlich an den Webdienst zu binden. Sobald es tatsächlich an den Webdienst gebunden ist, kann es die verschiedenen Vorgänge aufrufen, die vom Webdienst verfügbar gemacht werden.
  2. Die Transportschicht wird als http: // angegeben, was bedeutet, dass die Nachrichten über das HTTP-Protokoll übertragen werden.

WSDL-Datei erstellen

Die WSDL-Datei wird immer dann erstellt, wenn ein Webdienst in einer beliebigen Programmiersprache erstellt wird.

Da es ziemlich kompliziert ist, die WSDL-Datei von Grund auf neu zu erstellen, erstellen alle Editoren wie Visual Studio für .Net und Eclipse für Java automatisch die WSDL-Datei.

Unten finden Sie ein Beispiel für eine in Visual Studio erstellte WSDL-Datei.




TutorialService

Die obige WSDL-Datei sieht für jeden Benutzer sehr einschüchternd aus. Wir werden die verschiedenen Teile in den nachfolgenden Tutorials ausführlich behandeln. Lassen Sie uns jedoch zunächst einen zusammenfassenden Blick darauf werfen, was jeder Abschnitt der WSDL-Datei tatsächlich tut

Veröffentlichen des Webdienstbeispiels

Schauen wir uns nun ein Beispiel an, wie wir einen Webdienst veröffentlichen und mithilfe von Visual Studio verwenden können.

In diesem Beispiel erstellen wir einen Webdienst mit einer WebMethod. Diese Methode akzeptiert einen Integer-Parameter namens "TutorialID". Die Webmethode gibt dann eine Zeichenfolge mit dem Namen "Web Services" zurück.

Wir werden dann eine konsolenbasierte Anwendung erstellen, die diesen Webdienst nutzt und unsere Webmethode entsprechend aufruft.

Schauen wir uns die Schritte an, die zur Ausführung dieses Beispiels erforderlich sind.

Schritt 1) Der erste Schritt besteht darin, Ihren Webdienst zu erstellen. Die detaillierten Schritte zum Erstellen des Asp.Net-Webprojekts und eines Webdienstes wurden hier erläutert. Befolgen Sie die gleichen Schritte, um das Projekt und den Webdienst entsprechend zu erstellen. Der Schlüssel besteht darin, den folgenden Code in die Webdienstdatei einzugeben.

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;}}}

Code Erläuterung:

  1. Hier erstellen wir eine WebMethod namens "Guru99WebService". In dieser Webmethode enthalten wir einen Integer-Parameter, der bei jedem Aufruf dieser Webmethode übergeben werden muss.
  2. Als nächstes definieren wir eine Variable namens "TutorialName", die den Zeichenfolgenwert von "Web Services" enthält. Dies ist der Wert, der zurückgegeben wird, wenn der Webdienst aufgerufen wird.

Schritt 2) Nachdem wir die Webdienstdatei definiert haben, besteht der nächste Schritt darin, ein Clientprojekt zu erstellen, das diesen Webdienst verwendet.

Erstellen wir eine einfache Konsolenanwendung, die diesen Webdienst aufruft, den "Guru99WebService" aufruft und dann die Ausgabe der Webmethode im Konsolenprotokollbildschirm anzeigt. Führen Sie die folgenden Schritte aus, um eine Konsolenanwendung zu erstellen.

Klicken Sie mit der rechten Maustaste auf die Visual Studio-Lösungsdatei und wählen Sie die Option Hinzufügen-> Neues Projekt

Schritt 3) In diesem Schritt

  1. Stellen Sie sicher, dass Sie zuerst die Option Visual C # Windows auswählen. Wählen Sie dann die Option zum Erstellen einer Konsolenanwendung.
  2. Geben Sie einen Namen für Ihr Projekt an, der in unserem Fall als "DemoApplication" angegeben wurde.

Nachdem Sie im obigen Bildschirm auf die Schaltfläche OK geklickt haben, können Sie das Projekt im Projektmappen-Explorer in Visual Studio anzeigen.

Schritt 4) In diesem Schritt legen Sie die DemoApplication Console-Anwendung als Startprojekt fest. Dies wird durchgeführt, um sicherzustellen, dass diese Anwendung zuerst gestartet wird, wenn das gesamte Visual Studio-Projekt ausgeführt wird. Diese Konsolenanwendung ruft wiederum den Webdienst auf, der von Visual Studio automatisch gestartet wird.

Um diesen Schritt abzuschließen, klicken Sie mit der rechten Maustaste auf das DemoApplication-Projekt und wählen Sie die Option "Als Startprojekt festlegen".

Schritt 5) Der nächste Schritt ist das Hinzufügen der Dienstreferenz unseres "Guru99Webservice" zu unserer Konsolenanwendung. Dies geschieht, damit die DemoApplication auf den Webdienst und alle Webmethoden im Webdienst verweisen kann.

Klicken Sie dazu mit der rechten Maustaste auf die DemoApplication-Projektdatei und wählen Sie die Menüoption Hinzufügen-> Dienstreferenz.

Schritt 6) In diesem Schritt geben wir die verschiedenen Werte an, die zum Hinzufügen unserer Servicereferenz erforderlich sind

  1. Zunächst müssen wir unsere Entdeckungsoption auswählen. Diese Option ruft automatisch die WSDL-Datei für unseren TutorialService-Webdienst ab.
  2. Als nächstes sollten wir einen Namen für unsere Servicereferenz angeben. In unserem Fall geben wir ihm den Namen Guru99Webservice.
  3. Dann müssen wir die Option TutorialService.asmx erweitern, damit wir die Methode 'GetTutorialService' auf der rechten Seite sehen können. Hier ist TutorialService.asmx der Name unserer Visual Studio .Net-Datei, die den Code für unseren Webdienst enthält.
  4. Wir werden dann unsere Webmethode sehen, die wir in unserem Webdienst "GetTutorialService" hatten.

Wenn wir auf die Schaltfläche "OK" klicken, wird der gesamte für den Zugriff auf diesen Webdienst erforderliche Code wie unten gezeigt zu unserer DemoApplication Console-Anwendung hinzugefügt.

Der Screenshot zeigt, dass der "Guru99Webservice" erfolgreich zu unserer Konsolenanwendung hinzugefügt wurde.

Schritt 7) Der nächste Schritt besteht darin, den Code zu unserer Konsolenanwendung hinzuzufügen, um auf die Webmethode in unserem Webdienst zuzugreifen. Öffnen Sie die Codedatei Program.cs, die automatisch mit der Konsolenanwendung geliefert wird, und fügen Sie den folgenden Code hinzu

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

Code Erläuterung: -

  1. Der erste Teil besteht darin, die Datei Program.cs auszuwählen. Dies ist die Hauptdatei, die von Visual Studio beim Erstellen einer Konsolenanwendung erstellt wird. Diese Datei wird ausgeführt, wenn die Konsolenanwendung (in unserem Fall die Demoanwendung) ausgeführt wird.
  2. Anschließend erstellen wir eine Variable namens "client", die auf eine Instanz unserer Service-Referenz gesetzt wird, die in einem früheren Schritt erstellt wurde. In unserem Fall lautet die Dienstreferenz "Guru99Webservice.Guru99WebserviveSoapClient ()".
  3. Wir rufen dann unsere Webmethode 'GetTutorialService' im TutorialService-Webdienst auf. Denken Sie daran, dass unsere GetTutorialService-Methode einen Integer-Parameter akzeptiert, sodass wir nur einen Integer-Parameter an die Webmethode übergeben.
  4. Diese letzte Zeile soll nur sicherstellen, dass der Konsolenprotokollbildschirm aktiv bleibt, damit wir die Ausgabe anzeigen können. Dieser Befehl wartet nur auf Eingaben des Benutzers.

Ausgabe

Wenn alle oben genannten Schritte ausgeführt wurden und die DemoApplication ausgeführt wird, wird die folgende Ausgabe angezeigt.

An der Ausgabe können wir deutlich erkennen, dass die DemoApplication unseren Webdienst aufruft und dass die vom Webdienst zurückgegebene Zeichenfolge in unserem Konsolenprotokoll angezeigt wird.

Zusammenfassung

  • Die vollständige Form der WSDL ist die Web Services Description Language
  • Ein WSDL-Dokument ist ein Dokument, mit dem ein Webdienst beschrieben wird. Dies ist der Schlüssel für jede Clientanwendung, um zu wissen, wo sich der Webdienst befindet. Außerdem kann die Clientanwendung die im Webdienst verfügbaren Methoden verstehen.
  • Die WSDL-Datei macht es sehr einfach, den Webdienst in einer Programmiersprache zu implementieren und aus einer anderen Programmiersprache aufzurufen.
  • Das WSDL-Dokument besteht normalerweise aus einer Nachricht. Für jede Webmethode gibt es zwei Nachrichten, eine für die Eingabe und die andere für die Ausgabe. Zusammen bilden sie eine Operation.
  • Web Services Description Language (steht für WSDL) -Dateien werden normalerweise im Editor erstellt, der für die entsprechende Programmiersprache verwendet wird.
  • Wir haben gesehen, wie wir einen Webdienst in Visual Studio nutzen können. Dies kann durch Erstellen eines anderen Projekts erfolgen, bei dem es sich um eine Konsolenanwendung handelt. Durch Hinzufügen einer Dienstreferenz können wir dann auf die Webmethoden in unserem Webdienst zugreifen.