Vodič za WSDL: Web usluge Descriptionski jezik s primjerom

Što je WSDL?

Web usluge Descriptionski jezik (WSDL) je datoteka temeljena na XML-u koja u osnovi govori klijentskoj aplikaciji što web usluga radi. WSDL datoteka koristi se za ukratko opisivanje onoga što web usluga radi i daje klijentu sve informacije potrebne za povezivanje s web uslugom i korištenje svih funkcija koje web usluga nudi.

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

WSDL datoteka koristi se za ukratko opisivanje onoga što web usluga radi i daje klijentu sve informacije potrebne za povezivanje s web uslugom i korištenje svih funkcija koje web usluga nudi.

Struktura WSDL dokumenta

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

  • WSDL datoteka sadrži lokaciju web usluge i
  • Metode koje izlaže web servis.

Sama WSDL datoteka svakom korisniku može izgledati vrlo složena, ali sadrži sve potrebne informacije koje bi svaka klijentska aplikacija zahtijevala za korištenje relevantne web usluge.

Ispod je opća struktura WSDL datoteke

  • Definicija
  • TargetProstor
  • Vrste podataka
  • Poruke
  • Vrsta priključka
  • vezovi
  • usluga

Jedna ključna stvar koju ovdje treba primijetiti je ta definicija poruka, koja je ono što se prenosi SOAP protokol je zapravo definiran 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đene lokacije. Adresa sadrži podatke o osobi koja je dostavila razglednicu. Dakle, na isti način, WSDL datoteka je razglednica, koja ima adresu web servisa koji može isporučiti sve funkcionalnosti koje klijent želi.

<!-- 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>

Ispod je dijagram strukture WSDL datoteke

Struktura WSDL dokumenta
Struktura WSDL-a

WSDL elementi

WSDL datoteka sadrži sljedeće glavne dijelove

  1. The koristi se za definiranje svih složenih tipova podataka koji će se koristiti u poruci razmijenjenoj između klijentske aplikacije i web usluge. 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. Tipovi podataka kao što su float, brojevi i nizovi su svi jednostavni tipovi podataka, ali mogu postojati strukturirani tipovi podataka koje može pružiti web usluga.
    Na primjer, mogao bi postojati tip podataka pod nazivom EmployeeDataType koji bi mogao imati 2 elementa pod nazivom "EmployeeName" niza tipa i "EmployeeID" tipa broj ili cijeli broj. Zajedno tvore strukturu podataka koja zatim postaje složeni tip podataka.
  2. The koristi se za definiranje poruke koja se razmjenjuje između klijentske aplikacije i web poslužitelja. Ove poruke će objasniti ulazne i izlazne operacije koje može izvesti web usluga. Primjer poruke može biti poruka koja prihvaća EmployeeID zaposlenika, a izlazna poruka može biti ime zaposlenika na temelju dostavljenog EmpoyeeID-a.
  3. The oznaka se koristi za kapsuliranje svake ulazne i izlazne poruke u jednu logičku operaciju. Dakle, mogla bi postojati operacija pod nazivom "GetEmployee" koja kombinira ulaznu poruku prihvaćanja EmployeeID-a od klijentske aplikacije i zatim slanje EmployeeName kao izlazne poruke.
  4. The oznaka se koristi za vezanje operacije na određenu vrstu porta. To je tako da kada klijentska aplikacija pozove relevantnu vrstu priključka, moći će pristupiti operacijama koje su vezane za ovu vrstu priključka. Vrste priključaka su poput sučelja. Dakle, ako klijentska aplikacija treba koristiti web-uslugu, trebaju koristiti obvezujuće informacije kako bi osigurali da se mogu povezati na sučelje koje pruža ta web-usluga.
  5. The oznaka je naziv koji se daje samoj web usluzi. U početku, kada klijentska aplikacija upućuje poziv web-usluzi, to će učiniti pozivanjem naziva web-usluge. Na primjer, web servis se može nalaziti na adresi kao što je http://localhost/Guru99/Tutorial.asmx . Servisna oznaka zapravo će imati URL definiran kao http://localhost/Guru99/Tutorial.asmx, koji će zapravo reći klijentskoj aplikaciji da postoji web usluga dostupna na ovoj lokaciji.

Zašto WSDL

Web servis je važna komponenta u izgradnji modernih web aplikacija. Njihova glavna svrha je dopustiti da više aplikacija izgrađenih na različitim programskim jezicima međusobno komuniciraju. Na primjer, možemo imati .Net web aplikaciju koja razgovara s Java aplikacija putem web servisa.

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

  • Izgrađen je korištenjem XML programskog jezika. Gotovo sve moderne tehnologije kao što su .Net i Java imaju odgovarajuće naredbe koje imaju mogućnost rada s XML-om. Stoga je XML uzet kao najprikladniji jezik za izgradnju web usluga.
  • Web usluge komuniciraju preko HTTP-a. HTTP je protokol koji koriste sve web aplikacije. Stoga je imalo smisla osigurati da web usluge također imaju mogućnost rada preko HTTP protokola.
  • Web usluge su u skladu s određenom jezičnom specifikacijom. Ovu specifikaciju postavlja W3C, koje je upravno tijelo za sve web standarde.
  • Web usluge imaju jezik opisa poznat kao WSDL, koji se koristi za opisivanje web usluge.

WSDL datoteka je napisana u običnom starom XML-u. Razlog zašto je u XML-u je da se datoteka može čitati bilo kojim programskim jezikom.

Dakle, ako je klijentska aplikacija napisana u .Netu, razumjela bi XML datoteku. Slično, ako je klijentska aplikacija napisana u Java programski jezik tada bi također mogao interpretirati WSDL datoteku.

Potreban je WSDL

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

Dakle, ovdje se usluga implementira. Ako niste imali WSDL datoteku, a htjeli ste a Java klase za korištenje web usluge, trebat će vam puno truda kodiranja da to postignete.

Ali sada s WSDL datotekom koja je u XML-u, koju može razumjeti bilo koji programski jezik, sada možete jednostavno imati Java razreda koriste web uslugu .Net. Stoga je količina napora kodiranja znatno smanjena.

WSDL dio poruke

WSDL se sastoji od odjeljka pod nazivom "poruke" koji je označen s element.

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

Svaki će web servis uvijek imati 2 vrste poruka,

  • Jedan je za ulaz web usluge, a drugi je za izlaz web usluge.
  • Unos se koristi za opisivanje parametara koje web servis prihvaća. Ovo je važan aspekt klijentske aplikacije kako bi znala vrijednosti koje treba poslati kao parametre web-usluzi.
  • Druga vrsta poruke je izlazna poruka koja govori koje rezultate pruža web usluga.

Svaka će poruka zauzvrat imati a element koji se koristi za opisivanje parametra koji koristi ulazna i izlazna poruka.

Ispod je jednostavan primjer kako izgleda poruka za web uslugu. Funkcionalnost web-usluge je dati naziv "Tutorial" nakon što se "Tutorial ID" pošalje kao parametar web-usluzi.

WSDL dio poruke

  1. Kao što vidimo web servis ima 2 poruke, jednu za ulaz, a drugu za izlaz.
  2. Ulazna poruka je poznata kao TutorialNameRequest koja ima jedan parametar koji se zove TutorialID. Ovaj parametar je tipa broj koji je određen tipom xsd:broj
  3. Izlazna poruka poznata je kao TutorialNameResponse koja ima jedan parametar koji se zove TutorialName. Ovaj parametar je tipa string koji je određen tipom xsd:string

Povezivanje tipa priključka

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

U prethodnoj smo temi vidjeli da je naša web-usluga pružila 2 poruke, jednu za unos pod nazivom “TutorialNameRequest” i drugu za izlaz pod nazivom “TutorialNameResponse”. Zajedno, ulazni i izlazni oblik poruke poznat je kao jedna potpuna operacija.

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

Povezivanje tipa priključka

Dakle, u našem gornjem primjeru možemo uočiti sljedeće:

  1. Naziv vrste porta koji enkapsulira operaciju daje se kao "Tutorial_PortType."
  2. Sama operacija dobila je naziv "Tutorial". Dakle, naša operacija u osnovi daje TutorialName ako je TutorialID dan kao ulazni parametar.
  3. Sljedeće su naše 2 poruke, jedna za ulaz, a druga za izlaz koje čine našu operaciju

Osim element, tu je i element koji se koristi za definiranje načina prijenosa poruka.

Povezivanje tipa priključka

  1. Gornji primjer pokazuje da se uvezivanje sastoji od naziva uvezivanja koji je u našem slučaju dan kao "TutorialSoapBinding". Vezanje je jednostavnim rječnikom informacija koju klijentska aplikacija koristi da bi se stvarno vezala na web uslugu. Jednom kada se stvarno veže za web uslugu, tada ima mogućnost pozivanja raznih operacija koje web usluga izlaže.
  2. Prijenosni sloj zadan je kao http:// što znači da poruke koje će se prenositi preko HTTP protokola.

Stvaranje WSDL datoteke

WSDL datoteka se stvara kad god se web usluga izgradi u bilo kojem programskom jeziku.

Budući da je WSDL datoteka prilično komplicirana za generiranje od nule, svi uređivači kao što su Visual Studio za .Net i Eclipse za Java automatski stvoriti WSDL datoteku.

Ispod je primjer WSDL datoteke stvorene u 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>

Gornja WSDL datoteka izgleda vrlo zastrašujuće svakom korisniku, detaljno ćemo pokriti različite dijelove u narednim tutorijalima, ali za sada, pogledajmo ukratko što svaki odjeljak WSDL datoteke zapravo radi

Objavljivanje primjera web usluge

Sada pogledajmo primjer kako možemo objaviti web uslugu i koristiti je koristeći Visual Studio.

U ovom primjeru izradit ćemo web uslugu s jednom web metodom. Ova metoda će prihvatiti Integer parametar pod nazivom "TutorialID." Web metoda će zatim vratiti niz pod nazivom "Web usluge".

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

Pogledajmo korake potrebne za izvođenje ovog primjera.

Korak 1) Prvi korak je kreiranje vaše web usluge. Detaljni koraci kako Asp.Net Objašnjen je web projekt i kreirana web usluga ovdje; Slijedite iste korake za izradu projekta i web usluge u skladu s tim. Ključni dio je unijeti donji kod u datoteku web usluga.

Objavljivanje primjera web usluge

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. Zatim definiramo varijablu pod nazivom "TutorialName" koja će sadržavati vrijednost niza "Web Services." Ovo je vrijednost koja će biti vraćena kada se pozove web usluga.

Korak 2) Nakon što smo definirali datoteku web servisa, sljedeći korak je kreiranje klijentskog projekta koji će koristiti ovaj web servis.

Kreirajmo jednostavnu konzolnu aplikaciju koja će pozvati ovu web uslugu, pozvati “Guru99WebService” i zatim prikazati izlaz web metode na zaslonu dnevnika konzole. Slijedite korake u nastavku za izradu konzolne aplikacije.

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

Objavljivanje primjera web usluge

Korak 3) U ovom koraku

  1. Najprije odaberite Visual C# Windows opcija. Zatim odaberite opciju izrade konzolne aplikacije.
  2. Dajte naziv svom projektu koji je u našem slučaju dan kao "DemoApplication".

Objavljivanje primjera web usluge

Nakon što kliknete gumb U redu na gornjem ekranu, moći ćete vidjeti projekt u pregledniku rješenja u Visual Studiju.

Objavljivanje primjera web usluge

Korak 4) U ovom koraku postavljate aplikaciju DemoApplication Console kao početni projekt. Ovo je učinjeno kako bi se osiguralo da se ova aplikacija prva pokrene kada se pokrene cijeli projekt Visual Studio. Ova konzolna aplikacija će zauzvrat pozvati web servis koji će automatski pokrenuti Visual Studio.

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

Objavljivanje primjera web usluge

Korak 5) Sljedeći korak je dodavanje reference usluge naše “Guru99Webservice” našoj konzolnoj aplikaciji. To se radi kako bi DemoApplication mogla referencirati 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 Add->Service Reference.

Objavljivanje primjera web usluge

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

  1. Prvo moramo odabrati opciju otkrivanja. Ova će opcija automatski preuzeti WSDL datoteku za našu web uslugu TutorialService.
  2. Zatim bismo trebali dati naziv 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' na desnoj strani. Ovdje je TutorialService.asmx naziv naše Visual Studio .Net datoteke koja sadrži kod za našu web uslugu.
  4. Tada ćemo vidjeti našu web metodu koju smo imali u našoj web usluzi poznatoj kao “GetTutorialService”

Objavljivanje primjera web usluge

Kada kliknemo na gumb 'OK', sav potreban kod za pristup ovom web servisu bit će dodan u našu aplikaciju DemoApplication Console kao što je prikazano u nastavku.

Snimka zaslona pokazuje da je “Guru99Webservice” uspješno dodan u našu konzolnu aplikaciju.

Objavljivanje primjera web usluge

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

Objavljivanje primjera web usluge

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 konzolna aplikacija. Ova datoteka je ono što se izvršava kada se pokrene konzolna aplikacija (u našem slučaju demo aplikacija).
  2. Zatim stvaramo varijablu pod nazivom "klijent" koja će biti postavljena na instancu naše reference usluge koja je stvorena u prethodnom koraku. U našem slučaju, referenca usluge je 'Guru99Webservice.Guru99WebserviveSoapClient()'
  3. Zatim pozivamo našu web-metodu 'GetTutorialService' u web-usluzi TutorialService Zapamtite da naša metoda GetTutorialService' prihvaća cjelobrojni parametar, tako da samo prosljeđujemo cjelobrojni parametar web-metodi.
  4. Ovaj posljednji redak služi samo da osigura da ekran dnevnika konzole ostane aktivan kako bismo mogli vidjeti izlaz. Ova naredba će samo čekati neki unos od korisnika.

Izlaz

Kada se ispune svi gore navedeni koraci i pokrene DemoApplication, prikazat će se donji rezultat.

Objavljivanje primjera web usluge

Iz izlaza 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.

rezime

  • Puni oblik WSDL-a su web usluge Descriptionski jezik
  • WSDL dokument je dokument koji se koristi za opisivanje web usluge. Ovo je ključno za bilo koju klijentsku aplikaciju da zna gdje se nalazi web usluga. Također omogućuje klijentskoj aplikaciji razumijevanje metoda dostupnih u web usluzi.
  • WSDL datoteka vrlo olakšava implementaciju web usluge u jednom programskom jeziku i pozivanje iz drugog programskog jezika.
  • WSDL dokument se obično sastoji od poruke. Za svaku web metodu postoje 2 poruke, jedna je za ulaz, a druga za izlaz. Zajedno čine operaciju.
  • Web usluge DescriptDatoteke ionskog jezika (skraćenica za WSDL) obično se stvaraju 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 učiniti stvaranjem drugog projekta koji je konzolna aplikacija. Zatim, dodavanjem reference usluge, tada možemo pristupiti web metodama u našoj web usluzi.