WSDL Vodič: Jezik opisa web usluga s primjerom

Sadržaj:

Anonim

Što je WSDL?

Jezik opisa web usluga (WSDL) datoteka je koja se temelji na XML-u i u osnovi govori klijentskoj aplikaciji što web usluga radi. Datoteka WSDL ukratko se opisuje što web usluga radi i daje klijentu sve informacije potrebne za povezivanje s web uslugom i korištenje svih funkcija koje pruža web usluga.

U ovom uputstvu usredotočit ćemo se na posljednju točku koja je najvažniji dio web usluga, a to je WSDL ili jezik opisa web usluga.

Datoteka WSDL ukratko se opisuje što web usluga radi i daje klijentu sve informacije potrebne za povezivanje s web uslugom i korištenje svih funkcija koje pruža web usluga.

U ovom vodiču naučit ćete-

  • Struktura WSDL dokumenta
  • WSDL elementi
  • Zašto WSDL
  • WSDL dio poruke
  • Povezivanje tipa priključka
  • Izrada WSDL datoteke
  • Objavljivanje primjera web usluge

Struktura WSDL dokumenta

WSDL dokument koristi se za opis web usluge. Ovaj je opis potreban da bi klijentske aplikacije mogle razumjeti što web usluga zapravo radi.

  • WSDL datoteka sadrži mjesto web usluge i
  • Metode koje izlaže web usluga.

Sama WSDL datoteka može izgledati vrlo složeno za bilo kojeg korisnika, ali sadrži sve potrebne informacije koje bi bilo koja klijentska aplikacija trebala za upotrebu relevantne web usluge.

Ispod je općenita struktura WSDL datoteke

  • Definicija
  • TargetNamespace
  • Vrste podataka
  • Poruke
  • Tip luke
  • Vezovi
  • servis

Ovdje je potrebno napomenuti da je definicija poruka, a to je ono što se prosljeđuje SOAP protokolom, zapravo definirana u WSDL dokumentu.

WSDL dokument zapravo govori klijentskoj aplikaciji koje su vrste SOAP poruka koje web usluga šalje i prihvaća.

Drugim riječima, WSDL je poput razglednice koja ima adresu određenog mjesta. Adresa sadrži podatke o osobi koja je dostavila razglednicu. Stoga je na isti način WSDL datoteka razglednica koja ima adresu web usluge koja može isporučiti svu funkcionalnost koju klijent želi.

Ispod je dijagram strukture WSDL datoteke

Struktura WSDL-a

WSDL elementi

WSDL datoteka sadrži sljedeće glavne dijelove

  1. Oznaka koristi se za definiranje svih složenih tipova podataka, koji će se koristiti u poruci koju razmjenjuju klijentska aplikacija i web usluga. Ovo je važan aspekt klijentske aplikacije, jer ako web usluga radi sa složenim tipom podataka, tada bi klijentska aplikacija trebala znati kako obraditi složeni tip podataka. Vrste podataka poput float, brojevi i nizovi svi su jednostavni tipovi podataka, ali mogu postojati strukturirani tipovi podataka koje web usluga može pružiti.

    Na primjer, mogao bi postojati tip podataka nazvan EmployeeDataType koji može imati 2 elementa nazvana "EmployeeName" tipa string i "EmployeeID" broja tipa ili cijelog broja. Zajedno čine strukturu podataka koja tada postaje složeni tip podataka.

  2. Oznaka koristi se za definiranje poruke koja se razmjenjuje između klijentske aplikacije i web poslužitelja. Te će poruke objasniti ulazne i izlazne operacije koje web usluga može izvesti. Primjer poruke može biti poruka koja prihvaća EmployeeID zaposlenika, a izlazna poruka može biti ime zaposlenika na temelju navedenog EmpoyeeID-a.

  3. Oznaka koristi se za enkapsulaciju svake ulazne i izlazne poruke u jednu logičku operaciju. Dakle, mogla bi postojati operacija nazvana "GetEfficiee" koja kombinira ulaznu poruku prihvaćanja EmployeeID-a iz klijentske aplikacije i slanja EmployeeName kao izlazne poruke.

  4. Oznaka koristi se za povezivanje operacije s određenim tipom porta. To je tako da kada klijentska aplikacija pozove relevantni tip porta, tada će moći pristupiti operacijama koje su vezane za ovaj tip porta. Vrste porta su poput sučelja. Dakle, ako klijentska aplikacija treba koristiti web uslugu, ona mora koristiti obvezujuće podatke kako bi osigurala da se može povezati sa sučeljem koje pruža ta web usluga.

  5. Oznaka naziv je koji daje web usluga. U početku, kada klijentska aplikacija uputi poziv web usluzi, to će učiniti pozivanjem imena web usluge. Na primjer, web usluga može se nalaziti na adresi kao što je http: //localhost/Guru99/Tutorial.asmx . Oznaka usluge zapravo će imati URL definiran kao http: //localhost/Guru99/Tutorial.asmx , što će zapravo klijentskoj aplikaciji reći da na ovom mjestu postoji web usluga.

Zašto WSDL

Web usluga je važna komponenta u izradi modernih web aplikacija. Njihova je glavna svrha omogućiti višestrukim aplikacijama izgrađenim na raznim programskim jezicima da međusobno razgovaraju. Na primjer, možemo imati .Net web aplikaciju koja razgovara s Java aplikacijom putem web usluge.

Web usluga ima sljedeće ključne značajke

  • Izgrađen je pomoću programskog jezika XML. Gotovo sve moderne tehnologije poput .Net i Java imaju odgovarajuće naredbe koje imaju mogućnost rada s XML-om. Stoga je XML uzet kao najprikladniji jezik za izradu web usluga.
  • Web usluge komuniciraju putem HTTP-a. HTTP je protokol koji koriste sve mrežne aplikacije. Stoga je bilo smisla osigurati da web usluge imaju mogućnost rada i preko HTTP protokola.
  • Web usluge odgovaraju određenoj jezičnoj specifikaciji. Ovu je specifikaciju postavio W3C, koji je upravno tijelo za sve web standarde.
  • Web usluge imaju jezik opisa poznat pod nazivom WSDL, koji se koristi za opisivanje web usluge.

WSDL datoteka napisana je u običnom starom XML-u. Razlog što je u XML-u je taj da datoteku može čitati bilo koji programski jezik.

Dakle, ako je klijentska aplikacija napisana u .Netu, razumjela bi XML datoteku. Slično tome, ako je klijentska aplikacija napisana na programskom jeziku Java, tada bi također mogla protumačiti WSDL datoteku.

WSDL datoteka je ono što sve povezuje. Iz gornjeg dijagrama možete vidjeti da možete stvoriti web uslugu na jeziku .Net.

Dakle, tu se usluga implementira. Ako niste imali WSDL datoteku i željeli ste da Java klasa konzumira web uslugu, trebat će vam puno kodiranja da biste to postigli.

Ali sada s WSDL datotekom koja je u XML-u, a koju može razumjeti bilo koji programski jezik, sada možete lako dati Java klasi da koristi web uslugu .Net. Stoga se količina kodiranja napora znatno smanjuje.

WSDL dio poruke

WSDL se sastoji od odjeljka zvanog "poruke" koji je označen elementom .

Ovaj se element u osnovi koristi za opis podataka koji se razmjenjuju između web usluge i klijentske aplikacije.

Svaka web usluga uvijek će imati 2 vrste poruka,

  • Jedan je za ulaz web usluge, a drugi za izlaz web usluge.
  • Ulaz se koristi za opis parametara koje web usluga prihvaća. Ovo je važan aspekt klijentske aplikacije kako bi znao vrijednosti koje se šalju kao parametri web usluzi.
  • Druga vrsta poruke je izlazna poruka koja govori koje rezultate pruža web usluga.

Svaka će poruka, zauzvrat, imati element koji se koristi za opisivanje parametra koji se koristi u ulaznoj i izlaznoj poruci.

Ispod je jednostavan primjer kako izgleda poruka za web uslugu. Funkcionalnost web usluge je pružanje naziva "Vodiča" nakon što se "Vodič ID" pošalje kao parametar web usluzi.

  1. Kao što vidimo, web usluga ima dvije poruke, jednu za ulaz, a drugu za izlaz.
  2. Ulazna poruka poznata je kao TutorialNameRequest koja ima jedan parametar nazvan TutorialID. Ovaj je parametar broja tipa koji je naveden tipom broja xsd:
  3. Izlazna poruka poznata je kao TutorialNameResponse koja ima jedan parametar nazvan TutorialName. Ovaj je parametar tipa string koji je naveden tipom xsd: string

Povezivanje tipa priključka

Portovi se koriste u WSDL-u za definiranje jedne cjelovite operacije koju nudi web usluga.

U prethodnoj smo temi vidjeli da je naša web usluga pružila dvije poruke, jednu za ulaz pod nazivom "TutorialNameRequest", a drugu za izlaz pod nazivom "TutorialNameResponse". Zajedno je obrazac ulazne i izlazne poruke poznat kao jedna cjelovita operacija.

WSDL pruža element pod nazivom koji se koristi za definiranje operacija koje pruža web usluga.

Dakle, u našem gornjem primjeru možemo primijetiti sljedeće:

  1. Ime tipa priključka koji obuhvaća operaciju dato je kao "Tutorial_PortType".
  2. Sama operacija dobila je naziv "Vodič". Dakle, naša operacija u osnovi daje TutorialName ako je TutorialID dat kao ulazni parametar.
  3. Sljedeće su naše 2 poruke, jedna za ulaz, a druga za izlaz koja tvori naše djelovanje

Pored elementa , postoji i element koji se koristi za definiranje načina na koji će se poruke prenositi.

  1. Gornji primjer pokazuje da se vezanje sastoji od naziva vezanja koje se u našem slučaju daje kao "TutorialSoapBinding". Jednostavno povezivanje informacija je koju klijentska aplikacija koristi za stvarno povezivanje s web uslugom. Jednom kada je zapravo vezan za web uslugu, tada može pozvati razne operacije koje su izložene web usluzi.
  2. Transportni sloj daje se kao http: // što znači da će se poruke koje će se prenositi preko HTTP protokola.

Izrada WSDL datoteke

Datoteka WSDL stvara se kad god je web usluga izrađena na bilo kojem programskom jeziku.

Budući da je WSDL datoteku prilično komplicirano generirati od nule, svi urednici kao što su Visual Studio za .Net i Eclipse za Java automatski kreiraju WSDL datoteku.

Ispod je primjer WSDL datoteke stvorene u Visual Studiju.




TutorialService

Gornja WSDL datoteka izgleda vrlo zastrašujuće za svakog korisnika, detaljno ćemo pokriti različite dijelove u sljedećim vodičima, ali za sada, sažeto ćemo pogledati što zapravo čini svaki odjeljak WSDL datoteke

Objavljivanje primjera web usluge

Pogledajmo sada primjer kako možemo objaviti web uslugu i potrošiti je pomoću Visual Studija.

U ovom ćemo primjeru stvoriti web uslugu s jednom WebMethodom. Ova će metoda prihvatiti Integer parametar pod nazivom "TutorialID". Web metoda tada će vratiti niz pod nazivom "Web Services".

Zatim ćemo stvoriti aplikaciju temeljenu na konzoli, koja će trošiti ovu web uslugu i u skladu s tim pozivati ​​našu web metodu.

Pogledajmo korake potrebne za provođenje ovog primjera.

Korak 1) Prvi korak je stvaranje vaše web usluge. Ovdje su objašnjeni detaljni koraci izrade web projekta Asp.Net i web usluge; Slijedite iste korake da biste prema tome izradili projekt i web uslugu. Ključni dio je unos donjeg koda u datoteku web usluga.

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šnjenje koda:

  1. Ovdje stvaramo WebMethod pod nazivom "Guru99WebService." U ovu web metodu uključujemo cjelobrojni parametar koji treba proslijediti kad god se ova web metoda pozove.
  2. Dalje definiramo varijablu nazvanu "TutorialName" koja će sadržavati vrijednost niza "Web Services". To je vrijednost koja će se vratiti kada se pozove web usluga.

Korak 2) Nakon što definiramo datoteku web usluga, sljedeći je korak stvaranje klijentskog projekta koji će trošiti ovu web uslugu.

Stvorimo jednostavnu konzolu koja će pozvati ovu web uslugu, pozvati "Guru99WebService", a zatim prikazati izlaz web metode na zaslonu dnevnika konzole. Slijedite korake u nastavku za stvaranje aplikacije konzole.

Desnom tipkom miša kliknite datoteku rješenja Visual Studio i odaberite opciju Dodaj-> Novi projekt

Korak 3 ) U ovom koraku,

  1. Svakako prvo odaberite opciju Visual C # Windows. Zatim odaberite opciju izrade aplikacije konzole.
  2. Dajte naziv svom projektu koji je u našem slučaju dobio naziv "DemoApplication".

Nakon što na gornjem zaslonu kliknete gumb U redu, moći ćete vidjeti projekt u istraživaču rješenja u Visual Studiju.

Korak 4) U ovom koraku postavljate aplikaciju DemoApplication Console kao projekt pokretanja. To je učinjeno kako bi se osiguralo da se ova aplikacija prvo pokrene kada se pokrene cijeli projekt Visual Studio. Ova će konzola zauzvrat pozvati web uslugu koju će automatski pokrenuti Visual Studio.

Da biste dovršili ovaj korak, desnom tipkom miša kliknite projekt DemoApplication i odaberite opciju "Postavi kao projekt za pokretanje".

Korak 5) Sljedeći je korak dodati referencu usluge našeg "Guru99Webservice" u našu konzolu. To je učinjeno kako bi se DemoApplication mogao pozivati ​​na web uslugu i sve web metode u web usluzi.

Da biste to učinili, desnom tipkom miša kliknite datoteku projekta DemoApplication i odaberite opciju izbornika Dodaj-> Referenca usluge.

Korak 6) U ovom ćemo koraku pružiti različite vrijednosti potrebne za dodavanje naše reference usluge

  1. Prvo moramo odabrati našu mogućnost otkrivanja. Ova će opcija automatski preuzeti WSDL datoteku za našu web uslugu TutorialService.
  2. Dalje, trebali bismo dati ime za našu referencu usluge. U našem slučaju, dajemo mu ime Guru99Webservice.
  3. Zatim moramo proširiti opciju TutorialService.asmx kako bismo mogli vidjeti metodu 'GetTutorialService' s desne strane. Ovdje je TutorialService.asmx naziv naše Visual Studio .Net datoteke koja sadrži kôd naše web usluge.
  4. Tada ćemo vidjeti našu web metodu koju smo imali u našoj web službi poznatoj kao "GetTutorialService"

Kada kliknemo na gumb "U redu", sav potreban kôd za pristup ovoj web usluzi bit će dodan u našu aplikaciju DemoApplication Console kako je prikazano u nastavku.

Snimka zaslona pokazuje da je "Guru99Webservice" uspješno dodan u našu konzolu.

Korak 7) Sljedeći je korak dodavanje koda u našu konzolu za pristup web metodi u našoj web usluzi. Otvorite datoteku koda Program.cs koja automatski dolazi s aplikacijom konzole i dodajte donji kod

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

Objašnjenje koda: -

  1. Prvi dio je odabir datoteke Program.cs. Ovo je glavna datoteka koju kreira Visual Studio kada se kreira aplikacija konzole. Ova se datoteka izvršava kada se izvrši aplikacija konzole (u našem slučaju demo aplikacija).
  2. Zatim stvaramo varijablu pod nazivom "klijent" koja će biti postavljena na primjerak naše reference usluge koja je stvorena u ranijem koraku. U našem slučaju, referenca usluge je "Guru99Webservice.Guru99WebserviveSoapClient ()"
  3. Zatim našu web metodu nazivamo 'GetTutorialService' u web usluzi TutorialService. Imajte na umu da naša metoda GetTutorialService prihvaća cjelobrojni parametar, tako da samo prenosimo cjelobrojni parametar web metodi.
  4. Ovaj posljednji redak samo osigurava da zaslon dnevnika konzole ostane aktivan kako bismo mogli vidjeti izlaz. Ova će naredba samo pričekati korisnikov unos.

Izlaz

Kada se slijede svi gornji koraci i pokrene DemoApplication, prikazat će se donji izlaz.

Iz rezultata možemo jasno vidjeti da DemoApplication poziva našu web uslugu i da se niz koji vraća web usluga prikazuje u našem zapisniku konzole.

Sažetak

  • Puni oblik WSDL-a je jezik opisa web usluga
  • WSDL dokument je dokument koji se koristi za opisivanje web usluge. To je ključno za bilo koju klijentsku aplikaciju da zna gdje se nalazi web usluga. Omogućuje i klijentskoj aplikaciji da razumije metode dostupne u web usluzi.
  • WSDL datoteka olakšava implementaciju web usluge u jednom programskom jeziku i pozivanje iz drugog programskog jezika.
  • WSDL dokument obično se sastoji od poruke. Za svaku web metodu postoje 2 poruke, jedna je za ulaz, a druga za izlaz. Zajedno čine operaciju.
  • Datoteke jezika opisa web usluga (skraćenica od WSDL) obično se izrađuju u uređivaču koji se koristi za odgovarajući programski jezik.
  • Vidjeli smo kako možemo koristiti web uslugu u Visual Studiju. To se može postići izradom drugog projekta koji je konzola. Zatim dodavanjem reference usluge možemo pristupiti web metodama u našoj web usluzi.