Čo je to WSDL?
Jazyk popisu webových služieb (WSDL) je súbor založený na XML, ktorý v podstate informuje klientsku aplikáciu o tom, čo robí webová služba. Súbor WSDL sa používa v skratke na opísanie toho, čo webová služba robí, a poskytuje klientovi všetky informácie potrebné na pripojenie k webovej službe a na využitie všetkých funkcií poskytovaných webovou službou.
V tomto tutoriáli sa zameriame na posledný bod, ktorý je najdôležitejšou súčasťou webových služieb, a to je WSDL alebo jazyk popisu webových služieb.
Súbor WSDL sa používa v skratke na opísanie toho, čo webová služba robí, a poskytuje klientovi všetky informácie potrebné na pripojenie k webovej službe a na využitie všetkých funkcií poskytovaných webovou službou.
V tomto návode sa naučíte
- Štruktúra dokumentu WSDL
- Prvky WSDL
- Prečo WSDL
- Časť správy WSDL
- Viazanie typu portu
- Vytvára sa súbor WSDL
- Zverejnenie príkladu webovej služby
Štruktúra dokumentu WSDL
Dokument WSDL sa používa na opis webovej služby. Tento popis je povinný, aby klientske aplikácie boli schopné pochopiť, čo webová služba v skutočnosti robí.
- Súbor WSDL obsahuje umiestnenie webovej služby a
- Metódy, ktoré poskytuje webová služba.
Samotný súbor WSDL môže vyzerať pre každého používateľa veľmi zložito, ale obsahuje všetky potrebné informácie, ktoré by každá klientská aplikácia vyžadovala na použitie príslušnej webovej služby.
Ďalej je uvedená všeobecná štruktúra súboru WSDL
- Definícia
- TargetNamespace
- Dátové typy
- Správy
- Porttyp
- Viazania
- služba
Tu si treba uvedomiť jednu kľúčovú vec, že definícia správ, ktorá sa odovzdáva protokolom SOAP, je v skutočnosti definovaná v dokumente WSDL.
Dokument WSDL v skutočnosti hovorí klientskej aplikácii, aké sú typy správ SOAP, ktoré odosiela a prijíma webová služba.
Inými slovami, WSDL je ako pohľadnica, ktorá má adresu konkrétneho miesta. Adresa poskytuje údaje o osobe, ktorá pohľadnicu doručila. Rovnakým spôsobom je teda súbor WSDL pohľadnica, ktorá má adresu webovej služby, ktorá poskytuje všetky funkcie, ktoré klient požaduje.
… … … … …
Nižšie je uvedený diagram štruktúry súboru WSDL

Prvky WSDL
Súbor WSDL obsahuje nasledujúce hlavné časti
-
Značka
sa používa na definovanie všetkých komplexných údajových typov, ktoré sa použijú v správe vymieňanej medzi klientskou aplikáciou a webovou službou. Toto je dôležitý aspekt klientskej aplikácie, pretože ak webová služba pracuje so zložitým dátovým typom, potom by klientská aplikácia mala vedieť, ako komplexný dátový typ spracovať. Dátové typy, ako sú float, čísla a reťazce, sú všetko jednoduché dátové typy, ale môžu existovať štruktúrované dátové typy, ktoré môže poskytovať webová služba. Napríklad by mohol existovať dátový typ s názvom EmployeeDataType, ktorý by mohol mať dva prvky nazývané „EmployeeName“ typu reťazca a „EmployeeID“ typu číslo alebo celé číslo. Spolu tvoria dátovú štruktúru, ktorá sa potom stáva zložitým dátovým typom.
-
Značka
sa používa na definovanie správy, ktorá sa vymieňa medzi klientskou aplikáciou a webovým serverom. Tieto správy vysvetľujú vstupné a výstupné operácie, ktoré môže vykonávať webová služba. Príkladom správy môže byť správa, ktorá akceptuje identifikáciu zamestnanca zamestnanca a výstupnou správou môže byť meno zamestnanca na základe poskytnutého empoyeeID. -
Značka
sa používa na zapuzdrenie každej vstupnej a výstupnej správy do jednej logickej operácie. Môže teda existovať operácia s názvom „GetEmployee“, ktorá kombinuje vstupnú správu o prijatí čísla EmployeeID z klientskej aplikácie a následnom odoslaní názvu zamestnanca ako výstupnej správy. -
Značka
sa používa na naviazanie operácie na konkrétny typ portu. Je to tak, že keď klientská aplikácia zavolá na príslušný typ portu, bude mať potom prístup k operáciám, ktoré sú viazané na tento typ portu. Typy portov sú rovnako ako rozhrania. Ak teda klientská aplikácia potrebuje používať webovú službu, musí použiť záväzné informácie, aby sa zabezpečila možnosť pripojenia k rozhraniu poskytovanému touto webovou službou. -
Značka
je názov daný samotnej webovej službe. Spočiatku, keď klientska aplikácia zavolá na webovú službu, urobí to vyvolaním názvu webovej služby. Napríklad webovú službu je možné nájsť na adrese, ako je http: //localhost/Guru99/Tutorial.asmx . Značka služby bude mať v skutočnosti adresu URL definovanú ako http: //localhost/Guru99/Tutorial.asmx , ktorá klientskej aplikácii v skutočnosti oznámi, že na tomto mieste je k dispozícii webová služba.
Prečo WSDL
Webová služba je dôležitým komponentom pri vytváraní moderných webových aplikácií. Ich hlavným účelom je umožniť vzájomnú komunikáciu viacerých aplikácií postavených na rôznych programovacích jazykoch. Napríklad môžeme mať webovú aplikáciu .Net, ktorá komunikuje s Java aplikáciou cez webovú službu.
Webová služba má nasledujúce kľúčové funkcie
- Je zostavený pomocou programovacieho jazyka XML. Takmer všetky moderné technológie, ako sú .Net a Java, majú zodpovedajúce príkazy, ktoré sú schopné pracovať s XML. Preto sa XML považoval za najvhodnejší jazyk na vytváranie webových služieb.
- Webové služby komunikujú cez HTTP. HTTP je protokol používaný všetkými webovými aplikáciami. Preto malo zmysel zaistiť, aby webové služby mali tiež schopnosť pracovať cez protokol HTTP.
- Webové služby zodpovedajú konkrétnej jazykovej špecifikácii. Túto špecifikáciu stanovuje W3C, ktorý je riadiacim orgánom pre všetky webové štandardy.
- Webové služby majú jazyk popisu známy ako WSDL, ktorý sa používa na popis webovej služby.
Súbor WSDL je napísaný v starom obyčajnom XML. Dôvod, prečo je v XML, je ten, že súbor je možné čítať v ľubovoľnom programovacom jazyku.
Keby teda bola klientska aplikácia napísaná v .Net, súboru XML by rozumel. Podobne, ak by bola klientska aplikácia napísaná v programovacom jazyku Java, bola by tiež schopná interpretovať súbor WSDL.
Súbor WSDL je to, čo spája všetko dohromady. Z vyššie uvedeného diagramu vidno, že môžete vytvoriť webovú službu v jazyku .Net.
Takže tu sa služba implementuje. Ak ste nemali súbor WSDL a chceli by ste, aby webovú službu využívala trieda Java, na dosiahnutie tohto cieľa by ste potrebovali veľa úsilia v kódovaní.
Ale teraz so súborom WSDL, ktorý je v XML a dá sa tomu porozumieť v akomkoľvek programovacom jazyku, môžete teraz ľahko nechať, aby trieda Java využívala webovú službu .Net. Preto je množstvo úsilia pri kódovaní výrazne znížené.
Časť správy WSDL
WSDL sa skladá z časti nazvanej „správy“, ktorá je označená prvkom
Tento prvok sa v zásade používa na popis údajov, ktoré sa vymieňajú medzi webovou službou a klientskou aplikáciou.
Každá webová služba bude mať vždy 2 typy správ,
- Jeden slúži na vstup webovej služby a druhý na výstup webovej služby.
- Vstup sa používa na opis parametrov, ktoré akceptuje webová služba. Toto je dôležitý aspekt klientskej aplikácie, aby poznala hodnoty, ktoré sa majú poslať ako parametre do webovej služby.
- Ďalším typom správy je výstupná správa, ktorá informuje o výsledkoch poskytovaných webovou službou.
Každá správa bude mať zase prvok
Nasleduje jednoduchý príklad toho, ako vyzerá správa pre webovú službu. Funkciou webovej služby je poskytnúť názov „výučby“, keď sa do webovej služby odošle ako parameter „ID výučby“ ako parameter.
- Ako vidíme, webová služba má 2 správy, jednu pre vstup a druhú pre výstup.
- Vstupná správa je známa ako TutorialNameRequest, ktorá má jeden parameter s názvom TutorialID. Tento parameter má typové číslo, ktoré je určené typom xsd: number
- Výstupná správa je známa ako TutorialNameResponse, ktorá má jeden parameter s názvom TutorialName. Tento parameter má typový reťazec, ktorý je určený typom xsd: string
Viazanie typu portu
Porty sa vo WSDL používajú na definovanie jednej úplnej operácie, ktorú ponúka webová služba.
V predchádzajúcej téme sme videli, že naša webová služba poskytovala 2 správy, jednu pre vstup s názvom „TutorialNameRequest“ a druhú pre výstup s názvom „TutorialNameResponse“. Spoločne je vstupná a výstupná správa známa ako jedna úplná operácia.
WSDL poskytuje prvok s názvom
V našom príklade uvedenom vyššie si teda môžeme všimnúť toto:
- Názov typu portu, ktorý zapuzdruje operáciu, je uvedený ako „Tutorial_PortType“.
- Samotná operácia má názov „Tutorial“. Takže naša operácia v zásade poskytuje TutorialName, ak je TutorialID uvedený ako vstupný parameter.
- Ďalej sú to naše 2 správy, jedna pre vstup a druhá pre výstup, ktorý tvorí našu činnosť
Okrem prvku
- Vyššie uvedený príklad ukazuje, že väzba sa skladá z názvu väzby, ktorá sa v našom prípade označuje ako „TutorialSoapBinding“. Jednoduchou väzbou sú informácie, ktoré klientska aplikácia použije na to, aby sa skutočne naviazala na webovú službu. Akonáhle je skutočne spojená s webovou službou, má potom schopnosť volať rôzne operácie, ktoré sú webovou službou sprístupnené.
- Transportná vrstva je uvedená ako http: //, čo znamená, že správy, ktoré sa budú prenášať cez protokol HTTP.
Vytvára sa súbor WSDL
Súbor WSDL sa vytvorí vždy, keď je webová služba postavená v ľubovoľnom programovacom jazyku.
Pretože je generovanie súboru WSDL dosť zložité od nuly, všetci editori ako Visual Studio pre .Net a Eclipse pre Java automaticky vytvárajú súbor WSDL.
Nižšie je uvedený príklad súboru WSDL vytvoreného v balíku Visual Studio.
TutorialService
Vyššie uvedený súbor WSDL vyzerá pre každého používateľa veľmi zastrašujúco, rozličným častiam sa budeme podrobne venovať v nasledujúcich tutoriáloch, ale nateraz sa pozrime na súhrnný pohľad na to, čo každá časť súboru WSDL v skutočnosti robí.
Zverejnenie príkladu webovej služby
Teraz sa pozrime na príklad toho, ako môžeme publikovať webovú službu a využívať ju pomocou Visual Studio.
V tomto príklade vytvoríme webovú službu pomocou jednej WebMethod. Táto metóda prijme celočíselný parameter s názvom „TutorialID“. Metóda Web potom vráti reťazec s názvom „Webové služby“.
Potom vytvoríme konzolovú aplikáciu, ktorá spotrebuje túto webovú službu a podľa toho zavolá našu webovú metódu.
Pozrime sa na kroky potrebné na uskutočnenie tohto príkladu.
Krok 1) Prvým krokom je vytvorenie webovej služby. Tu sú vysvetlené podrobné kroky, ako je vytváraný webový projekt a webová služba Asp.Net; Podľa rovnakých krokov vytvorte zodpovedajúcim spôsobom projekt a webovú službu. Kľúčovou časťou je zadanie nižšie uvedeného kódu do súboru webových služieb.
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;}}}
Vysvetlenie kódu:
- Tu vytvárame metódu Web s názvom „Guru99WebService“. V tejto webovej metóde zahrňujeme celočíselný parameter, ktorý je potrebné odovzdať vždy, keď sa táto webová metóda volá.
- Ďalej definujeme premennú nazvanú „TutorialName“, ktorá bude obsahovať hodnotu reťazca „Web Services“. Toto je hodnota, ktorá sa vráti pri volaní webovej služby.
Krok 2) Po definovaní súboru webových služieb je ďalším krokom vytvorenie projektu klienta, ktorý bude túto webovú službu využívať.
Vytvorme jednoduchú konzolovú aplikáciu, ktorá bude volať túto webovú službu, vyvoláme „Guru99WebService“ a potom zobrazíme výstup webovej metódy na obrazovke protokolu konzoly. Podľa pokynov uvedených nižšie vytvorte konzolovú aplikáciu.
Pravým tlačidlom myši kliknite na súbor riešenia Visual Studio a vyberte možnosť Pridať-> Nový projekt
Krok 3) V tomto kroku
- Najprv nezabudnite na možnosť Visual C # Windows. Potom zvoľte možnosť vytvorenia konzolovej aplikácie.
- Pomenujte svoj projekt, ktorý v našom prípade dostal názov „DemoApplication“.
Po kliknutí na tlačidlo OK na obrazovke vyššie uvidíte projekt v Prieskumníkovi riešení v aplikácii Visual Studio.
Krok 4) V tomto kroku nastavujete ako spúšťací projekt aplikáciu DemoApplication Console. Toto sa vykonáva, aby sa zabezpečilo, že táto aplikácia sa spustí ako prvá, keď sa spustí celý projekt Visual Studio. Táto konzolová aplikácia bude následne volať webovú službu, ktorú automaticky spustí Visual Studio.
Tento krok dokončíte kliknutím pravým tlačidlom myši na projekt DemoApplication a výberom možnosti „Nastaviť ako projekt po spustení“.
Krok 5) Ďalším krokom je pridanie odkazu na službu našej „Guru99Webservice“ do našej konzolovej aplikácie. To sa deje tak, že DemoApplication môže odkazovať na webovú službu a všetky webové metódy vo webovej službe.
Ak to chcete urobiť, kliknite pravým tlačidlom myši na súbor projektu DemoApplication a vyberte možnosť ponuky Pridať-> Referencia služby.
Krok 6) V tomto kroku uvedieme rôzne hodnoty, ktoré sú potrebné na pridanie odkazu na našu službu
- Najskôr si musíme zvoliť našu možnosť objavenia. Táto možnosť automaticky vyzdvihne súbor WSDL pre našu webovú službu TutorialService.
- Ďalej by sme mali dať názov pre našu referenciu služby. V našom prípade mu dávame názov Guru99Webservice.
- Potom musíme rozšíriť možnosť TutorialService.asmx, aby sme mali možnosť vidieť metódu 'GetTutorialService' na pravej strane. Tu TutorialService.asmx je názov nášho súboru Visual Studio .Net, ktorý obsahuje kód pre našu webovú službu.
- Potom uvidíme našu webovú metódu, ktorú sme mali v našej webovej službe známej ako „GetTutorialService“
Keď klikneme na tlačidlo „OK“, všetok požadovaný kód na prístup k tejto webovej službe sa pridá do našej aplikácie DemoApplication Console, ako je uvedené nižšie.
Screenshot ukazuje, že služba „Guru99Webservice“ bola úspešne pridaná do našej konzolovej aplikácie.
Krok 7) Ďalším krokom je pridanie kódu do našej konzolovej aplikácie na prístup k webovej metóde v našej webovej službe. Otvorte programový súbor Program.cs, ktorý sa automaticky dodáva s konzolovou aplikáciou, a pridajte nasledujúci kód
namespace DemoApplication{class Program{static void Main(string[ ] args){var client = new Guru99Webservice.Guru99WebserviceSoapClient();Console.WriteLine(client.GetTutorialService(l));Console.ReadKey();}}}
Vysvetlenie kódu: -
- Prvá časť je výber súboru Program.cs. Toto je hlavný súbor, ktorý vytvorí Visual Studio pri vytváraní konzolovej aplikácie. Tento súbor sa vykoná pri spustení konzolovej aplikácie (v našom prípade ukážkovej aplikácie).
- Potom vytvoríme premennú nazvanú „klient“, ktorá bude nastavená na inštanciu nášho odkazu na službu, ktorá bola vytvorená v predchádzajúcom kroku. V našom prípade je odkaz na službu „Guru99Webservice.Guru99WebserviveSoapClient ()“
- Potom voláme našu metódu Webmethod 'GetTutorialService' vo webovej službe TutorialService Pamätajte, že naša metóda GetTutorialService 'akceptuje celočíselný parameter, takže webovej metóde iba odovzdávame celočíselný parameter.
- Tento posledný riadok slúži len na zabezpečenie toho, aby obrazovka protokolu konzoly zostala aktívna, aby sme mohli zobraziť výstup. Tento príkaz iba počká na nejaký vstup od používateľa.
Výkon
Po vykonaní všetkých vyššie uvedených krokov a spustení aplikácie DemoApplication sa zobrazí výstup uvedený nižšie.
Z výstupu jasne vidíme, že DemoApplication volá našu webovú službu a že reťazec vrátený webovou službou sa zobrazuje v našom protokole konzoly.
Zhrnutie
- Plnou formou WSDL je jazyk popisu webových služieb
- Dokument WSDL je dokument, ktorý sa používa na popis webovej služby. To je kľúčové pre každú klientsku aplikáciu, aby zistila, kde sa webová služba nachádza. Umožňuje tiež klientskej aplikácii porozumieť metódam dostupným vo webovej službe.
- Vďaka súboru WSDL je webová služba veľmi ľahko implementovateľná v jednom programovacom jazyku a volaná z iného programovacieho jazyka.
- Dokument WSDL zvyčajne pozostáva zo správy. Pre každú webovú metódu existujú 2 správy, jedna je pre vstup a druhá pre výstup. Spolu tvoria operáciu.
- Súbory s popisom webových služieb (znamená WSDL), ktoré sa zvyčajne vytvárajú v editore, ktorý sa používa pre príslušný programovací jazyk.
- Videli sme, ako môžeme vo Visual Studiu využívať webovú službu. To sa dá dosiahnuť vytvorením iného projektu, ktorým je konzolová aplikácia. Potom pridaním odkazu na službu môžeme získať prístup k webovým metódam v našej webovej službe.