WSDL mokymo programa: žiniatinklio paslaugų aprašo kalba su pavyzdžiu

Turinys:

Anonim

Kas yra WSDL?

„Web Services Description Language“ (WSDL) yra XML pagrįstas failas, kuris kliento programai iš esmės nurodo, ką daro žiniatinklio paslauga. WSDL failas trumpai apibūdina, ką daro interneto paslauga, ir pateikia klientui visą informaciją, reikalingą prisijungti prie interneto paslaugos ir naudotis visomis žiniatinklio paslaugos teikiamomis funkcijomis.

Šioje pamokoje daugiausia dėmesio skirsime paskutiniam dalykui, kuris yra svarbiausia žiniatinklio paslaugų dalis, tai yra WSDL arba žiniatinklio paslaugų aprašymo kalba.

WSDL failas trumpai apibūdina, ką daro interneto paslauga, ir pateikia klientui visą informaciją, reikalingą prisijungti prie interneto paslaugos ir naudotis visomis žiniatinklio paslaugos teikiamomis funkcijomis.

Šioje pamokoje sužinosite

  • WSDL dokumento struktūra
  • WSDL elementai
  • Kodėl WSDL
  • WSDL pranešimo dalis
  • Prievado tipo įrišimas
  • WSDL failo kūrimas
  • Žiniatinklio paslaugos pavyzdžio skelbimas

WSDL dokumento struktūra

WSDL dokumentas naudojamas žiniatinklio paslaugai apibūdinti. Šis aprašas yra būtinas, kad kliento programos galėtų suprasti, ką žiniatinklio paslauga iš tikrųjų veikia.

  • WSDL faile yra žiniatinklio paslaugos vieta ir
  • Metodai, kuriuos veikia interneto tarnyba.

Pats WSDL failas gali atrodyti labai sudėtingas bet kuriam vartotojui, tačiau jame yra visa reikalinga informacija, kurios bet kurios kliento programos prireiks norint naudotis atitinkama interneto paslauga.

Žemiau pateikiama bendra WSDL failo struktūra

  • Apibrėžimas
  • „TargetNamespace“
  • „DataTypes“
  • Žinutės
  • Porttype
  • Įrišimai
  • paslaugą

Vienas svarbiausias dalykas, į kurį reikia atkreipti dėmesį, yra tas pranešimų apibrėžimas, kuris yra tai, ką perduoda SOAP protokolas, iš tikrųjų apibrėžta WSDL dokumente.

WSDL dokumentas kliento programai iš tikrųjų nurodo, kokie yra SOAP pranešimų tipai, kuriuos siunčia ir priima žiniatinklio tarnyba.

Kitaip tariant, WSDL yra tarsi atvirukas, turintis tam tikros vietos adresą. Adrese pateikiami duomenys apie asmenį, kuris pristatė atviruką. Taigi tokiu pačiu būdu WSDL failas yra atvirukas, turintis žiniatinklio paslaugos adresą, kuris gali suteikti visas kliento pageidaujamas funkcijas.

Žemiau pateikiama WSDL failo struktūros schema

WSDL struktūra

WSDL elementai

WSDL faile yra šios pagrindinės dalys

  1. tegus yra naudojamas apibrėžti visų sudėtingų duomenų tipai, kurie bus naudojami pranešimą keičiamasi tarp kliento programos ir interneto paslaugas. Tai yra svarbus kliento programos aspektas, nes jei žiniatinklio paslauga veikia su sudėtingu duomenų tipu, tada kliento programa turėtų žinoti, kaip apdoroti sudėtingą duomenų tipą. Duomenų tipai, tokie kaip plūduriuojantys, skaičiai ir eilutės, yra paprasti duomenų tipai, tačiau gali būti struktūrizuotų duomenų tipų, kuriuos gali pateikti žiniatinklio tarnyba.

    Pvz., Gali būti duomenų tipas, vadinamas „EmployeeDataType“, kuriame gali būti 2 elementai, pavadinti „EmployeeName“ tipo eilute ir „EmployeeID“ tipo numeriu arba sveikuoju skaičiumi. Kartu jie sudaro duomenų struktūrą, kuri tampa sudėtingu duomenų tipu.

  2. tegus yra naudojamas apibrėžti žinia, kurią keičiamasi tarp kliento programos ir serverio. Šie pranešimai paaiškins įvesties ir išvesties operacijas, kurias gali atlikti žiniatinklio tarnyba. Pranešimo pavyzdys gali būti pranešimas, priimantis darbuotojo darbuotojo ID, o išvesties pranešimas gali būti darbuotojo vardas pagal pateiktą „EmpoyeeID“.

  3. žyma naudojama hermetyzacji kiekvieną įvesties ir išvesties žinutę į vieną loginės operacijos. Taigi gali būti operacija, vadinama „GetEmployee“, kuri sujungia įvesties pranešimą priimant „EmployeeID“ iš kliento programos ir išsiunčiant „EmployeeName“ kaip išvesties pranešimą.

  4. žymė yra naudojama įpareigoti operaciją su konkrečiu uosto tipo. Taip yra todėl, kad kliento programai iškvietus atitinkamą prievado tipą, ji galės pasiekti operacijas, susietas su šiuo prievado tipu. Uostų tipai yra kaip sąsajos. Taigi, jei kliento programai reikia naudoti žiniatinklio paslaugą, ji turi naudoti privalomą informaciją, kad užtikrintų prisijungimą prie tos interneto paslaugos teikiamos sąsajos.

  5. žymė yra pavadinimas, suteiktas pačios interneto paslaugą. Iš pradžių, kai kliento programa paskambina į žiniatinklio tarnybą, ji tai padarys paskambindama žiniatinklio paslaugos pavadinimu. Pvz., Žiniatinklio paslauga gali būti tokia adresu: http: //localhost/Guru99/Tutorial.asmx . Paslaugos žymoje URL bus apibrėžtas kaip http: //localhost/Guru99/Tutorial.asmx , kuris kliento programai iš tikrųjų pasakys, kad šioje vietoje yra prieinama interneto paslauga.

Kodėl WSDL

Internetinė paslauga yra svarbus komponentas kuriant šių dienų žiniatinklio programas. Jų pagrindinis tikslas yra leisti kelioms programoms, pagrįstoms įvairiomis programavimo kalbomis, susikalbėti. Pavyzdžiui, mes galime turėti .Net žiniatinklio programos pokalbius su „Java“ programa per žiniatinklio paslaugą.

Žiniatinklio paslauga turi šias pagrindines funkcijas

  • Jis sukurtas naudojant XML programavimo kalbą. Beveik visos šiuolaikinės technologijos, tokios kaip .Net ir Java, turi atitinkamas komandas, turinčias galimybę dirbti su XML. Taigi XML buvo laikoma tinkamiausia kalba kuriant žiniatinklio paslaugas.
  • Žiniatinklio paslaugos bendrauja per HTTP. HTTP yra protokolas, kurį naudoja visos žiniatinklio programos. Taigi buvo prasminga užtikrinti, kad žiniatinklio tarnybos taip pat galėtų dirbti per HTTP protokolą.
  • Žiniatinklio paslaugos atitinka tam tikrą kalbos specifikaciją. Šią specifikaciją nustato W3C, kuri yra visų žiniatinklio standartų valdymo institucija.
  • Žiniatinklio paslaugos turi aprašymo kalbą, vadinamą WSDL, kuri naudojama žiniatinklio paslaugai apibūdinti.

WSDL failas parašytas paprastu senu XML. Priežastis, kad ji yra XML, yra ta, kad failą gali perskaityti bet kuri programavimo kalba.

Taigi, jei kliento programa būtų parašyta „Net“, ji suprastų XML failą. Panašiai, jei kliento programa būtų parašyta „Java“ programavimo kalba, ji taip pat galėtų interpretuoti WSDL failą.

WSDL failas yra tai, kas viską susieja. Iš pirmiau pateiktos diagramos galite pamatyti, kad galite sukurti žiniatinklio paslaugą .Net kalba.

Taigi čia paslauga įgyvendinama. Jei neturite WSDL failo ir norite, kad „Java“ klasė sunaudotų žiniatinklio paslaugą, jums reikės daug kodavimo pastangų, kad tai pasiektumėte.

Bet dabar turėdami XML formato WSDL failą, kurį gali suprasti bet kuri programavimo kalba, dabar galite lengvai leisti „Java“ klasei naudoti .Net žiniatinklio paslaugą. Taigi, žymiai sumažėja kodavimo pastangų kiekis.

WSDL pranešimo dalis

WSDL sudaro skyrius, vadinamas „žinutėmis“, kuris žymimas elementu <žinutė> .

Šis elementas iš esmės naudojamas duomenims, kuriais keičiamasi tarp žiniatinklio tarnybos ir kliento programos, apibūdinti.

Kiekvienoje žiniatinklio tarnyboje visada bus 2 tipų pranešimai,

  • Vienas skirtas žiniatinklio paslaugos įvesties, o kitas - žiniatinklio paslaugos išvesties rezultatams.
  • Įvestis naudojama apibūdinti parametrus, kuriuos priima žiniatinklio tarnyba. Tai yra svarbus kliento programos aspektas, kad ji žinotų vertes, kurios bus siunčiamos kaip parametrai žiniatinklio tarnybai.
  • Kitas pranešimo tipas yra išvesties pranešimas, kuriame nurodoma, kokius rezultatus teikia žiniatinklio tarnyba.

Kiekvienas pranešimas savo ruožtu turės elementą , kuris naudojamas apibūdinti parametrą, kurį naudoja įvesties ir išvesties pranešimas.

Žemiau pateikiamas paprastas pavyzdys, kaip atrodo žiniatinklio paslaugos pranešimas. Žiniatinklio paslaugos funkcionalumas yra pateikti „Pamokos“ pavadinimą, kai žiniatinklio tarnybai kaip parametrą bus pateiktas „Pamokos ID“.

  1. Kaip matome, žiniatinklio tarnyba turi 2 pranešimus, vieną įvesties, o kitą - išvestį.
  2. Įvesties pranešimas žinomas kaip „TutorialNameRequest“, kuriame yra vienas parametras, vadinamas „TutorialID“. Šis parametras yra tipo numerio, kurį nurodo xsd: numerio tipas
  3. Išvesties pranešimas žinomas kaip „TutorialNameResponse“, kuriame yra vienas parametras, vadinamas „TutorialName“. Šis parametras yra tipo eilutės, kurią nurodo xsd: eilutės tipas

Prievado tipo įrišimas

Uostai naudojami WSDL, norint apibrėžti vieną pilną operaciją, kurią siūlo žiniatinklio tarnyba.

Ankstesnėje temoje matėme, kad mūsų žiniatinklio tarnyba pateikė 2 pranešimus, vieną įvesties pavadinimu „TutorialNameRequest“, o kitą - „TutorialNameResponse“ vadinamą išvestį. Įvesties ir išvesties pranešimo forma kartu vadinama viena užbaigta operacija.

WSDL pateikia elementą, vadinamą , kuris naudojamas apibrėžti žiniatinklio tarnybos teikiamas operacijas.

Taigi aukščiau pateiktame pavyzdyje galime pastebėti:

  1. Prievado tipo, kuris apima operaciją, pavadinimas nurodomas kaip „Tutorial_PortType“.
  2. Pačiai operacijai suteikiamas pavadinimas „Pamoka“. Taigi mūsų operacija iš esmės pateikia „TutorialName“, jei „TutorialID“ nurodomas kaip įvesties parametras.
  3. Kitas yra mūsų 2 pranešimai, vienas įvesties ir kitas išvesties, kuris sudaro mūsų operaciją

Be elemento , taip pat yra elementas , kuris naudojamas apibrėžti, kaip pranešimai bus perduodami.

  1. Aukščiau pateiktas pavyzdys rodo, kad įrišimas susideda iš įrišimo pavadinimo, kuris mūsų atveju nurodomas kaip „TutorialSoapBinding“. Susiejimas paprastai yra informacija, kurią kliento programa naudoja, kad iš tikrųjų susietų su interneto paslauga. Kai jis iš tikrųjų yra susietas su žiniatinklio paslauga, jis gali paskambinti įvairioms operacijoms, kurias veikia žiniatinklio tarnyba.
  2. Transporto sluoksnis pateikiamas kaip http: //, o tai reiškia, kad pranešimai, kurie bus perduodami per HTTP protokolą.

WSDL failo kūrimas

WSDL failas sukuriamas, kai žiniatinklio paslauga yra sukurta bet kuria programavimo kalba.

Kadangi WSDL failą yra gana sudėtinga generuoti nuo nulio, visi redaktoriai, pvz., „Visual Studio“ .Net ir „Eclipse for Java“, automatiškai sukuria WSDL failą.

Žemiau pateikiamas „Visual Studio“ sukurto WSDL failo pavyzdys.




TutorialService

Aukščiau pateiktas WSDL failas atrodo labai bauginantis bet kurį vartotoją, skirtingose ​​dalyse išsamiai aptarsime kitas mokomąsias programas, tačiau kol kas trumpai apžvelkime, ką iš tikrųjų daro kiekvienas WSDL failo skyrius

Žiniatinklio paslaugos pavyzdžio skelbimas

Dabar pažvelkime į pavyzdį, kaip galime paskelbti žiniatinklio paslaugą ir ją naudoti naudodami „Visual Studio“.

Šiame pavyzdyje sukursime žiniatinklio paslaugą naudodami vieną „WebMethod“. Šis metodas priims sveiką skaičių, vadinamą „TutorialID“. Tada žiniatinklio metodas grąžins eilutę, vadinamą „Žiniatinklio paslaugos“.

Tada sukursime konsole pagrįstą programą, kuri naudos šią interneto paslaugą ir atitinkamai iškvies mūsų žiniatinklio metodą.

Pažvelkime į veiksmus, reikalingus šiam pavyzdžiui atlikti.

1 žingsnis) Pirmasis žingsnis yra sukurti savo interneto paslaugą. Čia buvo paaiškinti išsamūs „Asp.Net“ tinklo projekto ir žiniatinklio paslaugos kūrimo žingsniai; Atlikite tuos pačius veiksmus, kad sukurtumėte projektą ir žiniatinklio paslaugą. Pagrindinė dalis yra įvesti žemiau esantį kodą į žiniatinklio paslaugų failą.

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

Kodo paaiškinimas:

  1. Čia mes kuriame „WebMethod“ pavadinimu „Guru99WebService“. Į šį žiniatinklio metodą įtraukiame sveiko skaičiaus parametrą, kurį reikia perduoti, kai tik vadinamas šis žiniatinklio metodas.
  2. Toliau mes apibrėžiame kintamąjį, vadinamą „TutorialName“, kuris išlaikys „Web Services“ eilutės reikšmę. Tai vertė, kuri bus grąžinta iškvietus žiniatinklio paslaugą.

2 žingsnis) Kai mes nustatysime interneto paslaugų failą, kitas žingsnis yra sukurti kliento projektą, kuris sunaudos šią žiniatinklio paslaugą.

Sukurkime paprastą konsolės programą, kuri paskambins į šią žiniatinklio paslaugą, iškvies „Guru99WebService“ ir tada parodys žiniatinklio metodo išvestį konsolės žurnalo ekrane. Norėdami sukurti konsolės programą, atlikite toliau nurodytus veiksmus.

Dešiniuoju pelės mygtuku spustelėkite „Visual Studio“ sprendimo failą ir pasirinkite parinktį Pridėti-> Naujas projektas

3 žingsnis ) Šiame žingsnyje

  1. Pirmiausia įsitikinkite, kad pasirinkote parinktį „Visual C # Windows“. Tada pasirinkite konsolės programos sukūrimo parinktį.
  2. Pavadinkite savo projektą, kuris mūsų atveju buvo pavadintas „DemoApplication“.

Spustelėję mygtuką Gerai aukščiau pateiktame ekrane, galėsite pamatyti projektą „Visual Studio“ sprendimų naršyklėje.

4 žingsnis) Šiame žingsnyje nustatysite „DemoApplication Console“ programą kaip paleidimo projektą. Tai daroma siekiant užtikrinti, kad ši programa būtų paleista pirmiausia, kai bus vykdomas visas „Visual Studio“ projektas. Ši „Console“ programa savo ruožtu paskambins į žiniatinklio paslaugą, kurią automatiškai paleis „Visual Studio“.

Norėdami užbaigti šį veiksmą, dešiniuoju pelės mygtuku spustelėkite „DemoApplication“ projektą ir pasirinkite parinktį „Nustatyti kaip„ StartUp “projektą“.

5 žingsnis) Kitas žingsnis - prie konsolės programos pridėti „Guru99Webservice“ paslaugos nuorodą. Tai daroma tam, kad „DemoApplication“ galėtų nurodyti žiniatinklio paslaugą ir visus žiniatinklio metodus žiniatinklio tarnyboje.

Norėdami tai padaryti, dešiniuoju pelės mygtuku spustelėkite projekto „DemoApplication“ failą ir pasirinkite meniu parinktį Pridėti-> Paslaugos nuoroda.

6 žingsnis) Šiame etape pateiksime skirtingas vertes, kurių reikia norint pridėti mūsų paslaugos nuorodą

  1. Pirmiausia turime pasirinkti mūsų atradimo variantą. Ši parinktis automatiškai paims WSDL failą mūsų „TutorialService“ žiniatinklio tarnybai.
  2. Tada turėtume nurodyti savo paslaugos nuorodą. Mūsų atveju mes jam suteikiame „Guru99Webservice“ pavadinimą.
  3. Tada turime išplėsti parinktį „TutorialService.asmx“, kad dešinėje pusėje galėtume pamatyti „GetTutorialService“ metodą. Čia „TutorialService.asmx“ yra mūsų „Visual Studio .Net“ failo, kuriame yra mūsų žiniatinklio paslaugos kodas, pavadinimas.
  4. Tada pamatysime savo žiniatinklio metodą, kurį turėjome žiniatinklio tarnyboje, vadinamoje „GetTutorialService“.

Kai spustelėsime mygtuką „Gerai“, visas reikalingas kodas, norint pasiekti šią žiniatinklio paslaugą, bus pridėtas prie „DemoApplication Console“ programos, kaip parodyta žemiau.

Ekrano kopija rodo, kad „Guru99Webservice“ sėkmingai pridėta prie konsolės programos.

7 žingsnis) Kitas žingsnis yra pridėti kodą prie konsolės programos, kad būtų galima pasiekti žiniatinklio metodą mūsų žiniatinklio tarnyboje. Atidarykite Program.cs kodo failą, kuris automatiškai gaunamas su konsolės programa, ir pridėkite žemiau esantį kodą

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

Kodo paaiškinimas: -

  1. Pirmiausia reikia pasirinkti failą Program.cs. Tai yra pagrindinis „Visual Studio“ sukurtas failas, kai kuriama konsolės programa. Šis failas yra vykdomas, kai vykdoma konsolės programa (mūsų atveju - demonstracinė programa).
  2. Tada sukursime kintamąjį, vadinamą „klientas“, kuris bus nustatytas kaip ankstesnio žingsnio sukurto mūsų paslaugos nuorodos egzempliorius. Mūsų atveju paslaugos nuoroda yra „Guru99Webservice.Guru99WebserviveSoapClient ()“
  3. Tada žiniatinklio metodą vadiname „GetTutorialService“, naudodamiesi „TutorialService“ žiniatinklio tarnyba. Atminkite, kad mūsų metodas „GetTutorialService“ priima sveiko skaičiaus parametrą, todėl tiesiog perduodame sveiko skaičiaus parametrą žiniatinklio metodui.
  4. Ši paskutinė eilutė skirta tik užtikrinti, kad konsolės žurnalo ekranas išliktų aktyvus, kad galėtume peržiūrėti išvestį. Ši komanda tiesiog lauks vartotojo įvesties.

Rezultatas

Atlikus visus pirmiau nurodytus veiksmus ir paleidus „DemoApplication“, bus rodoma žemiau išvesta išvestis.

Iš išvesties galime aiškiai pamatyti, kad „DemoApplication“ iškviečia mūsų žiniatinklio tarnybą ir kad žiniatinklio tarnybos grąžinta eilutė rodoma konsolės žurnale.

Santrauka

  • Pilna WSDL forma yra žiniatinklio paslaugų aprašo kalba
  • WSDL dokumentas yra dokumentas, naudojamas žiniatinklio paslaugai apibūdinti. Tai yra raktas, kad bet kuri kliento programa žinotų, kur yra žiniatinklio paslauga. Tai taip pat leidžia kliento programai suprasti žiniatinklio tarnyboje galimus metodus.
  • WSDL failas leidžia labai lengvai įdiegti žiniatinklio paslaugą viena programavimo kalba ir paskambinti iš kitos programavimo kalbos.
  • WSDL dokumentą paprastai sudaro pranešimas. Kiekvienam žiniatinklio metodui yra 2 pranešimai, vienas skirtas įvesties, kitas - išvesties pranešimams. Kartu jie sudaro operaciją.
  • Žiniatinklio paslaugų aprašo kalbos (reiškia WSDL) failai paprastai sukuriami redaktoriuje, kuris naudojamas atitinkamai programavimo kalbai.
  • Mes matėme, kaip mes galime naudoti žiniatinklio paslaugą „Visual Studio“. Tai galima padaryti sukūrus kitą projektą, kuris yra konsolės programa. Tada pridėdami paslaugos nuorodą, mes galėsime pasiekti žiniatinklio metodus savo žiniatinklio tarnyboje.