Ce este WSDL?
Limbajul de descriere a serviciilor web (WSDL) este un fișier bazat pe XML care spune practic aplicației client ce face serviciul web. Fișierul WSDL este utilizat pentru a descrie pe scurt ceea ce face serviciul web și oferă clientului toate informațiile necesare pentru a se conecta la serviciul web și pentru a utiliza toate funcționalitățile oferite de serviciul web.
În acest tutorial, ne vom concentra asupra ultimului punct, care este cea mai importantă parte a serviciilor web, și anume WSDL sau limbajul de descriere a serviciilor web.
Fișierul WSDL este utilizat pentru a descrie pe scurt ceea ce face serviciul web și oferă clientului toate informațiile necesare pentru a se conecta la serviciul web și pentru a utiliza toate funcționalitățile oferite de serviciul web.
În acest tutorial, veți învăța-
- Structura unui document WSDL
- Elemente WSDL
- De ce WSDL
- Partea mesajului WSDL
- Legare tip port
- Crearea fișierului WSDL
- Publicarea exemplului serviciului web
Structura unui document WSDL
Un document WSDL este utilizat pentru a descrie un serviciu web. Această descriere este necesară, astfel încât aplicațiile client să poată înțelege ce face de fapt serviciul web.
- Fișierul WSDL conține locația serviciului web și
- Metodele expuse de serviciul web.
Fișierul WSDL în sine poate părea foarte complex pentru orice utilizator, dar conține toate informațiile necesare pe care orice aplicație client le-ar solicita pentru a utiliza serviciul web relevant.
Mai jos este structura generală a unui fișier WSDL
- Definiție
- TargetNamespace
- Tipuri de date
- Mesaje
- Tip port
- Legături
- serviciu
Un lucru cheie de remarcat aici este că definiția mesajelor, care este transmisă de protocolul SOAP este de fapt definită în documentul WSDL.
Documentul WSDL spune de fapt unei aplicații client care sunt tipurile de mesaje SOAP care sunt trimise și acceptate de serviciul Web.
Cu alte cuvinte, WSDL este exact ca o carte poștală care are adresa unei anumite locații. Adresa oferă detaliile persoanei care a livrat cartea poștală. Prin urmare, în același mod, fișierul WSDL este cartea poștală, care are adresa serviciului web care poate oferi toate funcționalitățile dorite de client.
… … … … …
Mai jos este o diagramă a structurii unui fișier WSDL
Elemente WSDL
Fișierul WSDL conține următoarele părți principale
-
Eticheta
este utilizată pentru a defini toate tipurile de date complexe, care vor fi utilizate în mesajul schimbat între aplicația client și serviciul web. Acesta este un aspect important al aplicației client, deoarece dacă serviciul web funcționează cu un tip de date complex, atunci aplicația client ar trebui să știe cum să proceseze tipul de date complex. Tipurile de date, cum ar fi float, numerele și șirurile, sunt toate tipuri de date simple, dar ar putea exista tipuri de date structurate care pot fi furnizate de serviciul web. De exemplu, ar putea exista un tip de date numit EmployeeDataType care ar putea avea 2 elemente numite „EmployeeName” de tip șir și „EmployeeID” de număr de tip sau întreg. Împreună formează o structură de date care apoi devine un tip de date complex.
-
Eticheta
este utilizată pentru a defini mesajul care este schimbat între aplicația client și serverul web. Aceste mesaje vor explica operațiunile de intrare și ieșire care pot fi efectuate de serviciul web. Un exemplu de mesaj poate fi un mesaj care acceptă EmployeeID al unui angajat, iar mesajul de ieșire poate fi numele angajatului pe baza EmpoyeeID furnizat. -
Eticheta
este utilizată pentru a încapsula fiecare mesaj de intrare și ieșire într-o singură operație logică. Deci, ar putea exista o operație numită „GetEmployee” care combină mesajul de intrare de acceptare a EmployeeID dintr-o aplicație client și apoi trimiterea EmployeeName ca mesaj de ieșire. -
Eticheta
este utilizată pentru a lega operația de tipul de port particular. Aceasta este astfel încât atunci când aplicația client apelează tipul de port relevant, va putea accesa apoi operațiunile care sunt legate de acest tip de port. Tipurile de porturi sunt la fel ca interfețele. Deci, dacă o aplicație client trebuie să utilizeze un serviciu web, trebuie să utilizeze informațiile obligatorii pentru a se asigura că se pot conecta la interfața furnizată de acel serviciu web. -
Eticheta
este un nume dat serviciului web în sine. Inițial, atunci când o aplicație client efectuează un apel către serviciul web, o va face apelând numele serviciului web. De exemplu, un serviciu web poate fi localizat la o adresă precum http: //localhost/Guru99/Tutorial.asmx . Eticheta de serviciu va avea de fapt adresa URL definită ca http: //localhost/Guru99/Tutorial.asmx , care va spune de fapt aplicației client că există un serviciu web disponibil în această locație.
De ce WSDL
Un serviciu web este o componentă importantă în construirea aplicațiilor web moderne. Scopul lor principal este de a permite mai multor aplicații construite pe diferite limbaje de programare să vorbească între ele. De exemplu, putem avea o aplicație web .Net care vorbește cu o aplicație Java prin intermediul unui serviciu Web.
Un serviciu web are următoarele caracteristici cheie
- Este construit folosind limbajul de programare XML. Aproape toate tehnologiile moderne precum .Net și Java au comenzi corespunzătoare care au capacitatea de a lucra cu XML. Prin urmare, XML a fost luat ca cel mai potrivit limbaj pentru construirea de servicii web.
- Serviciile web comunică prin HTTP. HTTP este un protocol utilizat de toate aplicațiile bazate pe web. Prin urmare, a avut sens să ne asigurăm că serviciile web au și capacitatea de a lucra prin protocolul HTTP.
- Serviciile web sunt conforme cu o anumită specificație lingvistică. Această specificație este stabilită de W3C, care este organul de conducere pentru toate standardele web.
- Serviciile web au un limbaj de descriere cunoscut sub numele de WSDL, care este utilizat pentru a descrie serviciul web.
Fișierul WSDL este scris în XML vechi simplu. Motivul pentru care se află în XML este astfel încât fișierul să poată fi citit de orice limbaj de programare.
Deci, dacă aplicația client a fost scrisă în .Net, ar înțelege fișierul XML. În mod similar, dacă aplicația client a fost scrisă în limbajul de programare Java, atunci ar putea, de asemenea, să interpreteze fișierul WSDL.
Fișierul WSDL este ceea ce leagă totul împreună. Din diagrama de mai sus, puteți vedea că puteți crea un serviciu web în limba .Net.
Deci, aici este implementat serviciul. Dacă nu ați avea fișierul WSDL și doriți ca o clasă Java să consume serviciul web, ați avea nevoie de mult efort de codare pentru a realiza acest lucru.
Dar acum, cu fișierul WSDL care este în XML, care poate fi înțeles de orice limbaj de programare, puteți acum cu ușurință o clasă Java să consume serviciul web .Net. Prin urmare, cantitatea de efort de codificare este mult redusă.
Partea mesajului WSDL
WSDL constă dintr-o secțiune numită „mesaje” care este notată de elementul
Acest element este utilizat în principiu pentru a descrie datele care sunt schimbate între serviciul web și aplicația client.
Fiecare serviciu web va avea întotdeauna 2 tipuri de mesaje,
- Una este pentru intrarea serviciului web, iar cealaltă este pentru ieșirea serviciului web.
- Intrarea este utilizată pentru a descrie parametrii care sunt acceptați de serviciul web. Acesta este un aspect important al aplicației client, astfel încât să cunoască valorile care trebuie trimise ca parametri serviciului web.
- Celălalt tip de mesaj este mesajul de ieșire care spune ce rezultate sunt furnizate de serviciul web.
Fiecare mesaj, la rândul său, va avea un element
Mai jos este un exemplu simplu despre cum arată un mesaj pentru un serviciu web. Funcționalitatea serviciului web este de a furniza numele unui „Tutorial” odată ce un „ID Tutorial” este trimis ca parametru serviciului web.
- După cum putem vedea, serviciul web are 2 mesaje, unul pentru intrare și celălalt pentru ieșire.
- Mesajul de intrare este cunoscut sub numele de TutorialNameRequest, care are un parametru numit TutorialID. Acest parametru este de tipul numărului specificat de tipul xsd: number
- Mesajul de ieșire este cunoscut sub numele de TutorialNameResponse, care are un parametru numit TutorialName. Acest parametru este de tip șir care este specificat de tipul xsd: string
Legare tip port
Porturile sunt utilizate în WSDL pentru a defini o operațiune completă oferită de serviciul web.
În subiectul anterior, am văzut că serviciul nostru web a furnizat 2 mesaje, unul pentru intrarea numită „TutorialNameRequest” și celălalt pentru rezultatul numit „TutorialNameResponse”. Împreună formularul de mesaj de intrare și ieșire este cunoscut ca o operație completă.
WSDL oferă un element numit
Deci, în exemplul nostru de mai sus, putem nota următoarele:
- Numele portului de tip care încapsulează operațiunea este dat ca „Tutorial_PortType”.
- Operațiunii în sine primește un nume de „Tutorial”. Deci operația noastră oferă practic un TutorialName dacă ID-ul Tutorial este dat ca parametru de intrare.
- Următoarele sunt cele 2 mesaje, unul pentru intrare și celălalt pentru ieșirea care formează operațiunea noastră
În plus față de elementul
- Exemplul de mai sus arată că legarea constă dintr-un nume de legare care în cazul nostru este dat ca „TutorialSoapBinding”. Legarea în termeni simpli este informația pe care aplicația client o folosește pentru a se lega de fapt de serviciul web. Odată ce este de fapt legat de serviciul web, acesta are apoi capacitatea de a apela diferitele operațiuni expuse de serviciul web.
- Stratul de transport este dat ca http: // ceea ce înseamnă că mesajele care vor fi transferate prin protocolul HTTP.
Crearea fișierului WSDL
Fișierul WSDL este creat ori de câte ori un serviciu web este construit în orice limbaj de programare.
Deoarece fișierul WSDL este destul de complicat pentru a fi generat de la zero, toți editorii precum Visual Studio pentru .Net și Eclipse pentru Java creează automat fișierul WSDL.
Mai jos este un exemplu de fișier WSDL creat în Visual Studio.
TutorialService
Fișierul WSDL de mai sus arată foarte intimidant pentru orice utilizator, vom acoperi în detaliu diferitele părți în tutorialele ulterioare, dar deocamdată, să aruncăm o privire rezumativă la ceea ce face de fapt fiecare secțiune a fișierului WSDL
Publicarea exemplului serviciului web
Acum să ne uităm la un exemplu despre cum putem publica un serviciu web și îl putem consuma folosind Visual Studio.
În acest exemplu, vom crea un serviciu web cu o singură metodă Web. Această metodă acceptă un parametru întreg numit „TutorialID”. Metoda Web va returna apoi un șir numit „Servicii Web”.
Vom crea apoi o aplicație bazată pe consolă, care va consuma acest serviciu web și va apela metoda noastră web în consecință.
Să ne uităm la pașii necesari pentru a realiza acest exemplu.
Pasul 1) Primul pas este să vă creați serviciul web. Pașii detaliați ai modului în care este creat proiectul web Asp.Net și un serviciu web au fost explicate aici; Vă rugăm să urmați aceiași pași pentru a crea proiectul și serviciul web în consecință. Partea cheie este să introduceți codul de mai jos în fișierul de servicii 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;}}}
Explicatie cod:
- Aici creăm o metodă Web numită „Guru99WebService”. În această metodă web, includem un parametru întreg care trebuie transmis de fiecare dată când se apelează această metodă web.
- În continuare definim o variabilă numită „TutorialName” care va deține valoarea șirului „Servicii Web”. Aceasta este valoarea care va fi returnată la apelarea serviciului web.
Pasul 2) Odată ce am definit fișierul de servicii web, următorul pas este crearea unui proiect client care va consuma acest serviciu web.
Să creăm o aplicație de consolă simplă care va apela acest serviciu web, invocăm „Guru99WebService” și apoi afișăm ieșirea metodei web în ecranul jurnal al consolei. Urmați pașii de mai jos pentru a crea o aplicație consolă.
Faceți clic dreapta pe fișierul soluției Visual Studio și alegeți opțiunea Adăugare-> Proiect nou
Pasul 3) În acest pas,
- Asigurați-vă că alegeți mai întâi opțiunea Visual C # Windows. Apoi alegeți opțiunea de a crea o aplicație pentru consolă.
- Dați un nume proiectului dvs. care, în cazul nostru, a fost dat ca „DemoApplication”.
După ce faceți clic pe butonul OK din ecranul de mai sus, veți putea vedea proiectul în Solution Explorer în Visual Studio.
Pasul 4) În acest pas, setați aplicația DemoApplication Console ca proiect de pornire. Acest lucru se face pentru a vă asigura că această aplicație se lansează mai întâi atunci când este rulat întregul proiect Visual Studio. Această aplicație pentru consolă va apela, la rândul său, serviciul web care va fi lansat automat de Visual Studio.
Pentru a finaliza acest pas, faceți clic dreapta pe proiectul DemoApplication și alegeți opțiunea „Setați ca proiect StartUp”.
Pasul 5) Următorul pas este să adăugăm referința de serviciu a „Guru99Webservice” la aplicația noastră de consolă. Acest lucru se face astfel încât DemoApplication să poată face referire la serviciul web și la toate metodele web din serviciul web.
Pentru a face acest lucru, faceți clic dreapta pe fișierul proiect DemoApplication și alegeți opțiunea de meniu Adăugare> Referință serviciu.
Pasul 6) În acest pas, vom furniza diferitele valori care sunt necesare pentru a adăuga referința noastră de serviciu
- În primul rând, trebuie să alegem opțiunea noastră de descoperire. Această opțiune va prelua automat fișierul WSDL pentru serviciul nostru web TutorialService.
- Apoi, ar trebui să dăm un nume pentru referința noastră de serviciu. În cazul nostru, îi dăm numele Guru99Webservice.
- Apoi, trebuie să extindem opțiunea TutorialService.asmx, astfel încât să putem avea posibilitatea de a vedea metoda „GetTutorialService” în partea dreaptă. Aici TutorialService.asmx este numele fișierului nostru Visual Studio .Net care conține codul pentru serviciul nostru web.
- Vom vedea apoi metoda noastră web pe care am avut-o în serviciul nostru web cunoscut sub numele de "GetTutorialService"
Când facem clic pe butonul „OK”, tot codul necesar pentru a accesa acest serviciu web va fi adăugat la aplicația Consolă DemoApplication, așa cum se arată mai jos.
Captura de ecran arată că „Guru99Webservice” a fost adăugat cu succes la aplicația noastră pentru consolă.
Pasul 7) Următorul pas este să adăugăm codul la aplicația consolă pentru a accesa metoda web din serviciul nostru web. Deschideți fișierul de cod Program.cs care vine automat cu aplicația consolă și adăugați codul de mai jos
namespace DemoApplication{class Program{static void Main(string[ ] args){var client = new Guru99Webservice.Guru99WebserviceSoapClient();Console.WriteLine(client.GetTutorialService(l));Console.ReadKey();}}}
Cod Explicație: -
- Prima parte este să alegeți fișierul Program.cs. Acesta este fișierul principal care este creat de Visual Studio atunci când este creată o aplicație de consolă. Acest fișier este cel care se execută când se execută aplicația consolă (în cazul nostru aplicația demo).
- Apoi creăm o variabilă numită „client” care va fi setată la o instanță a referinței noastre de serviciu care a fost creată într-un pas anterior. În cazul nostru, referința serviciului este „Guru99Webservice.Guru99WebserviveSoapClient ()”
- Apelăm metoda noastră web „GetTutorialService” în serviciul web TutorialService Amintiți-vă că metoda noastră GetTutorialService acceptă un parametru întreg, deci trecem doar un parametru întreg metodei web.
- Această ultimă linie este doar pentru a ne asigura că ecranul jurnalului consolei rămâne activ, astfel încât să putem vizualiza ieșirea. Această comandă va aștepta doar o intrare de la utilizator.
Ieșire
Când sunt urmați toți pașii de mai sus și se execută DemoApplication, va fi afișat rezultatul de mai jos.
Din rezultat, putem vedea clar că DemoApplication apelează serviciul nostru web și că șirul returnat de serviciul web este afișat în jurnalul Consolei noastre.
rezumat
- Forma completă de WSDL este Limbajul de descriere a serviciilor web
- Un document WSDL este un document care este utilizat pentru a descrie un serviciu web. Aceasta este cheia pentru orice aplicație client pentru a ști unde se află serviciul web. De asemenea, permite aplicației client să înțeleagă metodele disponibile în serviciul web.
- Fișierul WSDL facilitează implementarea serviciului web într-un limbaj de programare și apelarea dintr-un limbaj de programare diferit.
- Documentul WSDL constă în mod normal dintr-un mesaj. Pentru fiecare metodă web, există 2 mesaje, unul este pentru intrare, iar celălalt este pentru ieșire. Împreună formează o operație.
- Fișierele Limbaj de descriere a serviciilor web (înseamnă WSDL) fișierele sunt create în mod normal în editorul care este utilizat pentru limbajul de programare corespunzător.
- Am văzut cum putem consuma un serviciu web în Visual Studio. Acest lucru se poate face prin crearea unui alt proiect care este o aplicație pentru consolă. Apoi, adăugând o referință de serviciu, putem accesa metodele web din serviciul nostru web.