Kurs WSDL: Język opisu usług WWW z przykładem

Spisie treści:

Anonim

Co to jest WSDL?

Język opisu usług sieci Web (WSDL) to plik oparty na języku XML, który zasadniczo informuje aplikację kliencką o tym, co robi usługa sieci Web. Plik WSDL jest używany do opisania w pigułce tego, co robi usługa sieciowa i dostarcza klientowi wszystkich informacji wymaganych do połączenia się z usługą internetową i korzystania z wszystkich funkcji zapewnianych przez usługę sieciową.

W tym samouczku skupimy się na ostatnim punkcie, który jest najważniejszą częścią usług internetowych, a jest nim WSDL lub język opisu usług internetowych.

Plik WSDL jest używany do opisania w pigułce tego, co robi usługa sieciowa i dostarcza klientowi wszystkich informacji wymaganych do połączenia się z usługą sieciową i korzystania z wszystkich funkcji zapewnianych przez usługę sieciową.

W tym samouczku nauczysz się:

  • Struktura dokumentu WSDL
  • Elementy WSDL
  • Dlaczego WSDL
  • Część komunikatu WSDL
  • Powiązanie typu portu
  • Tworzenie pliku WSDL
  • Publikowanie przykładu usługi sieci Web

Struktura dokumentu WSDL

Dokument WSDL jest używany do opisu usługi WWW. Ten opis jest wymagany, aby aplikacje klienckie mogły zrozumieć, co faktycznie robi usługa sieciowa.

  • Plik WSDL zawiera lokalizację usługi WWW i
  • Metody, które są udostępniane przez usługę internetową.

Sam plik WSDL może wyglądać bardzo skomplikowanie dla każdego użytkownika, ale zawiera wszystkie niezbędne informacje, których każda aplikacja kliencka wymagałaby do korzystania z odpowiedniej usługi WWW.

Poniżej znajduje się ogólna struktura pliku WSDL

  • Definicja
  • TargetNamespace
  • DataTypes
  • Wiadomości
  • Porttype
  • Wiązania
  • usługa

Jedną z kluczowych rzeczy, na które należy zwrócić uwagę, jest to, że definicja komunikatów, która jest przekazywana przez protokół SOAP, jest w rzeczywistości zdefiniowana w dokumencie WSDL.

Dokument WSDL w rzeczywistości informuje aplikację kliencką, jakie typy komunikatów SOAP są wysyłane i akceptowane przez usługę WWW.

Innymi słowy, WSDL jest jak pocztówka z adresem określonej lokalizacji. Adres zawiera dane osoby, która dostarczyła pocztówkę. Stąd, w ten sam sposób, plik WSDL jest pocztówką, która ma adres usługi sieciowej, która może dostarczyć wszystkie funkcje wymagane przez klienta.

Poniżej znajduje się diagram struktury pliku WSDL

Struktura WSDL

Elementy WSDL

Plik WSDL zawiera następujące główne części

  1. Znacznik służy do definiowania wszystkich złożonych typów danych, które będą używane w komunikacie wymienianym między aplikacją kliencką a usługą sieciową. Jest to ważny aspekt aplikacji klienckiej, ponieważ jeśli usługa internetowa działa ze złożonym typem danych, aplikacja kliencka powinna wiedzieć, jak przetwarzać złożony typ danych. Typy danych, takie jak liczba zmiennoprzecinkowa, liczby i ciągi, są prostymi typami danych, ale mogą istnieć ustrukturyzowane typy danych, które mogą być dostarczane przez usługę internetową.

    Na przykład może istnieć typ danych o nazwie EmployeeDataType, który może mieć 2 elementy o nazwie „EmployeeName” typu string i „EmployeeID” typu liczba lub liczba całkowita. Razem tworzą strukturę danych, która następnie staje się złożonym typem danych.

  2. Znacznik służy do definiowania wiadomości, która jest wymieniana między aplikacją kliencką a serwerem WWW. Te komunikaty wyjaśniają operacje wejściowe i wyjściowe, które mogą być wykonywane przez usługę sieciową. Przykładem wiadomości może być wiadomość, która akceptuje identyfikator EmployeeID pracownika, a komunikatem wyjściowym może być imię i nazwisko pracownika na podstawie podanego EmpoyeeID.

  3. Znacznik służy do hermetyzacji każdego komunikatu wejściowego i wyjściowego w jedną operację logiczną. Mogłaby więc istnieć operacja o nazwie „GetEmployee”, która łączy komunikat wejściowy o zaakceptowaniu identyfikatora pracownika z aplikacji klienckiej, a następnie wysłaniu nazwy pracownika jako komunikatu wyjściowego.

  4. Znacznik służy do powiązania operacji z określonym typem portu. Dzieje się tak, że gdy aplikacja kliencka wywoła odpowiedni typ portu, będzie mogła uzyskać dostęp do operacji, które są powiązane z tym typem portu. Typy portów są podobne do interfejsów. Jeśli więc aplikacja kliencka musi korzystać z usługi internetowej, musi użyć informacji o powiązaniu, aby upewnić się, że może połączyć się z interfejsem udostępnianym przez tę usługę sieciową.

  5. Znacznik to nazwa nadana samej usłudze internetowej. Początkowo, gdy aplikacja kliencka nawiązuje połączenie z usługą internetową, zrobi to, wywołując nazwę usługi internetowej. Na przykład usługa internetowa może znajdować się pod adresem, takim jak http: //localhost/Guru99/Tutorial.asmx . Znacznik serwisowy będzie miał adres URL zdefiniowany jako http: //localhost/Guru99/Tutorial.asmx , co w rzeczywistości będzie informować aplikację kliencką, że w tej lokalizacji jest dostępna usługa sieciowa.

Dlaczego WSDL

Usługa sieciowa jest ważnym elementem w tworzeniu nowoczesnych aplikacji internetowych. Ich głównym celem jest umożliwienie wzajemnej komunikacji wielu aplikacjom zbudowanym w różnych językach programowania. Na przykład, aplikacja internetowa .Net może komunikować się z aplikacją Java za pośrednictwem usługi sieciowej.

Usługa internetowa ma następujące kluczowe funkcje

  • Jest zbudowany przy użyciu języka programowania XML. Prawie wszystkie współczesne technologie, takie jak .Net i Java, mają odpowiednie polecenia, które mają możliwość pracy z XML. Dlatego XML został uznany za najbardziej odpowiedni język do tworzenia usług internetowych.
  • Usługi internetowe komunikują się za pośrednictwem protokołu HTTP. HTTP to protokół używany przez wszystkie aplikacje internetowe. Dlatego po prostu sensowne było upewnienie się, że usługi internetowe mogą również pracować za pośrednictwem protokołu HTTP.
  • Usługi internetowe są zgodne z określoną specyfikacją językową. Ta specyfikacja jest ustalana przez W3C, które jest organem zarządzającym wszystkimi standardami sieciowymi.
  • Usługi WWW mają język opisu znany jako WSDL, który jest używany do opisu usługi WWW.

Plik WSDL jest zapisany w zwykłym starym formacie XML. Powodem, dla którego jest w formacie XML, jest to, że plik można odczytać w dowolnym języku programowania.

Więc jeśli aplikacja kliencka została napisana w .Net, zrozumiałaby plik XML. Podobnie, gdyby aplikacja kliencka została napisana w języku programowania Java, to również byłaby w stanie zinterpretować plik WSDL.

Plik WSDL jest tym, co łączy wszystko w jedną całość. Z powyższego diagramu widać, że można stworzyć usługę internetową w języku .Net.

W tym miejscu usługa zostaje wdrożona. Jeśli nie masz pliku WSDL i chcesz, aby klasa Java korzystała z usługi WWW, wymagałoby to dużego wysiłku w kodowaniu, aby to osiągnąć.

Ale teraz, dzięki plikowi WSDL, który jest w formacie XML, który może być zrozumiany w każdym języku programowania, można teraz łatwo sprawić, by klasa Java korzystała z usługi sieciowej .Net. W związku z tym nakład pracy związany z kodowaniem jest znacznie zmniejszony.

Część komunikatu WSDL

WSDL składa się z sekcji zwanej „wiadomościami”, która jest oznaczona elementem .

Ten element jest zasadniczo używany do opisu danych, które są wymieniane między usługą internetową a aplikacją kliencką.

Każda usługa internetowa będzie zawsze mieć 2 typy wiadomości,

  • Jedna służy do wprowadzania danych przez usługę sieciową, a druga do danych wyjściowych usługi sieciowej.
  • Dane wejściowe służą do opisu parametrów, które są akceptowane przez usługę sieciową. Jest to ważny aspekt aplikacji klienckiej, ponieważ zna wartości, które mają być wysłane jako parametry do usługi sieciowej.
  • Drugim rodzajem komunikatu jest komunikat wyjściowy, który informuje, jakie wyniki są dostarczane przez usługę internetową.

Każda wiadomość z kolei będzie miała element , który jest używany do opisu parametru używanego przez komunikat wejściowy i wyjściowy.

Poniżej znajduje się prosty przykład tego, jak wygląda wiadomość dla usługi internetowej. Funkcjonalność usługi sieciowej polega na podaniu nazwy „samouczka” po przesłaniu „identyfikatora samouczka” jako parametru do usługi sieciowej.

  1. Jak widać, usługa sieciowa ma 2 komunikaty, jeden dla wejścia, a drugi dla wyjścia.
  2. Komunikat wejściowy jest znany jako TutorialNameRequest i ma jeden parametr o nazwie TutorialID. Ten parametr ma numer typu, który jest określony przez typ xsd: number
  3. Komunikat wyjściowy jest znany jako TutorialNameResponse i ma jeden parametr o nazwie TutorialName. Ten parametr jest typu string, który jest określony przez typ xsd: string

Powiązanie typu portu

Porty są używane w WSDL do zdefiniowania jednej kompletnej operacji, która jest oferowana przez usługę sieciową.

W poprzednim temacie widzieliśmy, że nasza usługa sieciowa udostępnia 2 komunikaty, jeden dla danych wejściowych o nazwie „TutorialNameRequest”, a drugi dla danych wyjściowych o nazwie „TutorialNameResponse”. Formularz komunikatu wejściowego i wyjściowego jest znany jako jedna kompletna operacja.

WSDL udostępnia element o nazwie , który służy do definiowania operacji udostępnianych przez usługę sieci Web.

W naszym powyższym przykładzie możemy zauważyć, co następuje:

  1. Nazwa typu portu, który zawiera operację, jest podana jako „Tutorial_PortType”.
  2. Sama operacja nosi nazwę „Samouczek”. Więc nasza operacja zasadniczo dostarcza TutorialName, jeśli TutorialID jest podany jako parametr wejściowy.
  3. Dalej są nasze 2 komunikaty, jeden dla wejścia, a drugi dla wyjścia, które tworzy naszą operację

Oprócz elementu istnieje również element , który służy do definiowania sposobu przesyłania wiadomości.

  1. Powyższy przykład pokazuje, że powiązanie składa się z nazwy powiązania, która w naszym przypadku jest podana jako „TutorialSoapBinding”. Powiązanie to w prostych słowach informacje, których aplikacja kliencka używa do rzeczywistego powiązania się z usługą internetową. Gdy jest faktycznie powiązany z usługą internetową, może wywoływać różne operacje, które są ujawniane przez usługę sieciową.
  2. Warstwa transportowa jest podana jako http: //, co oznacza, że ​​wiadomości, które będą przesyłane przez protokół HTTP.

Tworzenie pliku WSDL

Plik WSDL jest tworzony za każdym razem, gdy usługa sieci Web jest budowana w dowolnym języku programowania.

Ponieważ generowanie pliku WSDL od zera jest dość skomplikowane, wszystkie edytory, takie jak Visual Studio dla .Net i Eclipse dla języka Java, automatycznie tworzą plik WSDL.

Poniżej znajduje się przykład pliku WSDL utworzonego w programie Visual Studio.




TutorialService

Powyższy plik WSDL wygląda bardzo onieśmielająco dla każdego użytkownika, omówimy szczegółowo różne jego części w kolejnych samouczkach, ale na razie przyjrzyjmy się podsumowaniu, co tak naprawdę robi każda sekcja pliku WSDL

Publikowanie przykładu usługi sieci Web

Spójrzmy teraz na przykład, w jaki sposób możemy opublikować usługę sieci Web i korzystać z niej przy użyciu programu Visual Studio.

W tym przykładzie utworzymy usługę internetową z jedną metodą WebMethod. Ta metoda akceptuje parametr Integer o nazwie „TutorialID”. Metoda sieciowa zwróci wówczas ciąg o nazwie „Usługi sieci Web”.

Następnie utworzymy aplikację opartą na konsoli, która będzie wykorzystywać tę usługę sieciową i odpowiednio wywoływać naszą metodę sieciową.

Spójrzmy na kroki wymagane do wykonania tego przykładu.

Krok 1) Pierwszym krokiem jest utworzenie usługi internetowej. Szczegółowe kroki tworzenia projektu sieci Web Asp.Net i usługi sieci Web zostały wyjaśnione w tym miejscu; Wykonaj te same kroki, aby odpowiednio utworzyć projekt i usługę internetową. Kluczową częścią jest wprowadzenie poniższego kodu w pliku usług internetowych.

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

Objaśnienie kodu:

  1. Tutaj tworzymy metodę WebMethod o nazwie „Guru99WebService”. W tej metodzie sieciowej dołączamy parametr będący liczbą całkowitą, który należy przekazać za każdym razem, gdy wywoływana jest ta metoda sieciowa.
  2. Następnie definiujemy zmienną o nazwie „TutorialName”, która będzie przechowywać wartość ciągu „Web Services”. Jest to wartość, która zostanie zwrócona po wywołaniu usługi internetowej.

Krok 2) Po zdefiniowaniu pliku usług internetowych następnym krokiem jest utworzenie projektu klienta, który będzie korzystał z tej usługi internetowej.

Stwórzmy prostą aplikację konsolową, która wywoła tę usługę sieciową, wywoła „Guru99WebService”, a następnie wyświetli wynik metody sieciowej na ekranie dziennika konsoli. Wykonaj poniższe czynności, aby utworzyć aplikację konsolową.

Kliknij prawym przyciskiem myszy plik rozwiązania programu Visual Studio i wybierz opcję Dodaj-> Nowy projekt

Krok 3) Na tym etapie

  1. Upewnij się, że najpierw wybierzesz opcję Visual C # Windows. Następnie wybierz opcję tworzenia aplikacji konsolowej.
  2. Nadaj projektowi nazwę, która w naszym przypadku została nazwana „DemoApplication”.

Po kliknięciu przycisku OK na powyższym ekranie będzie można zobaczyć projekt w eksploratorze rozwiązań w programie Visual Studio.

Krok 4) W tym kroku ustawiasz aplikację DemoApplication Console jako projekt startowy. Ma to na celu zapewnienie, że ta aplikacja zostanie uruchomiona jako pierwsza po uruchomieniu całego projektu programu Visual Studio. Ta aplikacja konsoli będzie z kolei wywoływać usługę internetową, która zostanie automatycznie uruchomiona przez program Visual Studio.

Aby wykonać ten krok, kliknij prawym przyciskiem myszy projekt DemoApplication i wybierz opcję „Ustaw jako projekt startowy”.

Krok 5) Następnym krokiem jest dodanie odniesienia do usługi naszego „Guru99Webservice” do naszej aplikacji konsoli. Dzieje się tak, aby aplikacja DemoApplication mogła odwoływać się do usługi sieci Web i wszystkich metod sieci Web w usłudze sieciowej.

Aby to zrobić, kliknij prawym przyciskiem myszy plik projektu DemoApplication i wybierz opcję menu Dodaj-> Odniesienie do usługi.

Krok 6) Na tym etapie podamy różne wartości, które są wymagane do dodania naszego numeru referencyjnego usługi

  1. Najpierw musimy wybrać opcję odkrywania. Ta opcja automatycznie pobierze plik WSDL dla naszej usługi sieciowej TutorialService.
  2. Następnie powinniśmy podać nazwę naszego odniesienia do usługi. W naszym przypadku nadajemy mu nazwę Guru99Webservice.
  3. Następnie musimy rozwinąć opcję TutorialService.asmx, abyśmy mogli zobaczyć metodę „GetTutorialService” po prawej stronie. Tutaj TutorialService.asmx to nazwa naszego pliku programu Visual Studio .Net, który zawiera kod naszej usługi internetowej.
  4. Następnie zobaczymy naszą metodę sieciową, którą mieliśmy w naszej usłudze sieciowej, znaną jako „GetTutorialService”

Kiedy klikniemy przycisk „OK”, cały kod wymagany do uzyskania dostępu do tej usługi sieciowej zostanie dodany do naszej aplikacji DemoApplication Console, jak pokazano poniżej.

Zrzut ekranu pokazuje, że usługa „Guru99Webservice” została pomyślnie dodana do naszej aplikacji konsoli.

Krok 7) Następnym krokiem jest dodanie kodu do naszej aplikacji konsolowej, aby uzyskać dostęp do metody sieciowej w naszym serwisie internetowym. Otwórz plik kodu Program.cs, który jest dostarczany automatycznie z aplikacją konsoli i dodaj poniższy kod

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

Objaśnienie kodu: -

  1. Pierwsza część polega na wybraniu pliku Program.cs. Jest to główny plik tworzony przez program Visual Studio podczas tworzenia aplikacji konsoli. Ten plik jest tym, co jest wykonywane, gdy aplikacja konsoli (w naszym przypadku aplikacja demonstracyjna) jest wykonywana.
  2. Następnie tworzymy zmienną o nazwie „klient”, która zostanie ustawiona na wystąpienie naszego odwołania do usługi, które zostało utworzone we wcześniejszym kroku. W naszym przypadku odwołanie do usługi to „Guru99Webservice.Guru99WebserviveSoapClient ()”
  3. Następnie wywołujemy naszą metodę Webmethod „GetTutorialService” w usłudze sieciowej TutorialService. Pamiętaj, że nasza metoda GetTutorialService ”akceptuje parametr będący liczbą całkowitą, więc po prostu przekazujemy parametr typu integer do metody internetowej.
  4. Ta ostatnia linia ma na celu zapewnienie, że ekran dziennika konsoli pozostanie aktywny, abyśmy mogli zobaczyć dane wyjściowe. To polecenie będzie po prostu czekać na dane wejściowe od użytkownika.

Wynik

Po wykonaniu wszystkich powyższych kroków i uruchomieniu aplikacji DemoApplication wyświetlone zostaną poniższe dane wyjściowe.

Na podstawie danych wyjściowych możemy wyraźnie zobaczyć, że aplikacja DemoApplication wywołuje naszą usługę sieci Web i że ciąg zwracany przez usługę sieci Web jest wyświetlany w naszym dzienniku konsoli.

Podsumowanie

  • Pełna forma WSDL to język opisu usług sieci Web
  • Dokument WSDL to dokument używany do opisu usługi WWW. Ma to kluczowe znaczenie dla każdej aplikacji klienckiej, aby wiedzieć, gdzie znajduje się usługa sieciowa. Pozwala również aplikacji klienckiej na zrozumienie metod dostępnych w usłudze sieciowej.
  • Plik WSDL bardzo ułatwia implementację usługi sieci Web w jednym języku programowania i wywoływanie jej z innego języka programowania.
  • Dokument WSDL zwykle składa się z komunikatu. Dla każdej metody internetowej istnieją 2 komunikaty, jeden dla danych wejściowych, a drugi dla danych wyjściowych. Razem tworzą operację.
  • Pliki Web Services Description Language (skrót od WSDL) są zwykle tworzone w edytorze używanym przez odpowiedni język programowania.
  • Widzieliśmy, jak możemy korzystać z usługi sieci Web w programie Visual Studio. Można to zrobić, tworząc inny projekt, który jest aplikacją konsolową. Następnie, dodając odniesienie do usługi, możemy uzyskać dostęp do metod sieciowych w naszej usłudze sieciowej.