WSDL-i õpetus: veebiteenuste kirjelduskeel koos näitega

Lang L: none (table-of-contents):

Anonim

Mis on WSDL?

Veebiteenuste kirjelduskeel (WSDL) on XML-põhine fail, mis ütleb kliendirakendusele põhimõtteliselt, mida veebiteenus teeb. WSDL-faili abil kirjeldatakse lühidalt, mida veebiteenus teeb, ja see annab kliendile kogu vajaliku teabe veebiteenusega ühenduse loomiseks ja kõigi veebiteenuse pakutavate funktsioonide kasutamiseks.

Selles õpetuses keskendume viimasele punktile, mis on veebiteenuste kõige olulisem osa, see on WSDL või veebiteenuste kirjelduskeel.

WSDL-faili abil kirjeldatakse lühidalt, mida veebiteenus teeb, ja see annab kliendile kogu vajaliku teabe veebiteenusega ühenduse loomiseks ja kõigi veebiteenuse pakutavate funktsioonide kasutamiseks.

Selles õpetuses saate teada

  • WSDL-dokumendi struktuur
  • WSDL-i elemendid
  • Miks just WSDL
  • WSDL-i sõnumi osa
  • Pordi tüübi sidumine
  • WSDL-faili loomine
  • Veebiteenuse näite avaldamine

WSDL-dokumendi struktuur

Veebiteenuse kirjeldamiseks kasutatakse WSDL-dokumenti. See kirjeldus on vajalik, et kliendirakendused saaksid aru, mida veebiteenus tegelikult teeb.

  • WSDL-fail sisaldab veebiteenuse asukohta ja
  • Veebiteenuse pakutavad meetodid.

WSDL-fail võib ise tunduda igale kasutajale väga keeruline, kuid see sisaldab kogu vajalikku teavet, mida iga kliendirakendus vajaks vastava veebiteenuse kasutamiseks.

Allpool on WSDL-faili üldine struktuur

  • Definitsioon
  • TargetNamespace
  • Andmetüübid
  • Sõnumid
  • Porttüüp
  • Köited
  • teenus

Üks oluline asi, mida siin tähele panna, on sõnumite määratlus, mis on see, mida SOAP-protokoll edastab, on tegelikult määratletud WSDL-dokumendis.

WSDL-dokument ütleb tegelikult kliendirakendusele, mis tüüpi on SOAP-sõnumid, mida veebiteenus saadab ja aktsepteerib.

Teisisõnu, WSDL on nagu postkaart, millel on kindla asukoha aadress. Aadress sisaldab postkaardi kättetoimetanud isiku andmeid. Seega on WSDL-fail samamoodi postkaart, millel on veebiteenuse aadress, mis suudab pakkuda kõiki klientide soovitud funktsioone.

Allpool on toodud WSDL-faili struktuuri diagramm

WSDL-i struktuur

WSDL-i elemendid

WSDL-fail sisaldab järgmisi põhiosi

  1. tag saab määrata kõik keerulised andmetüüpidel, mida kasutatakse sõnumi vahel vahetatakse kliendi taotluse ja veebiteenuse. See on kliendirakenduse oluline aspekt, sest kui veebiteenus töötab keeruka andmetüübiga, peaks kliendirakendus teadma, kuidas keerukat andmetüüpi töödelda. Andmetüübid, nagu ujuk, numbrid ja stringid, on kõik lihtsad andmetüübid, kuid võiks olla struktureeritud andmetüüpe, mida veebiteenus võib pakkuda.

    Näiteks võib olla andmetüüp nimega EmployeeDataType, millel võib olla 2 elementi nimega "EmployeeName" tüübistringina ja "EmployeeID" tüübinumbriks või täisarvuks. Koos moodustavad nad andmestruktuuri, mis muutub seejärel keerukaks andmetüübiks.

  2. tag saab määrata sõnumi, mis vahetavad kliendi taotluse ja veebiserver. Need teated selgitavad sisend- ja väljundoperatsioone, mida veebiteenus saab teha. Sõnumi näiteks võib olla sõnum, mis aktsepteerib töötaja EmployeeID-d, ja väljundsõnum võib olla töötaja nimi, mis põhineb esitatud EmpoyeeID-l.

  3. tag kapseldada iga sisendi ja väljundi sõnumi ühte töötamise loogikat. Seega võiks olla toiming nimega "GetEmployee", mis ühendab sisendteate, mille kohaselt aktsepteeritakse kliendirakendusest EmployeeID ja saadetakse seejärel väljundsõnumina EmployeeName.

  4. märgend sidumiseks kasutatakse toimingu eriti port tüüpi. Seda selleks, et kui kliendirakendus helistab asjakohasele porditüübile, on tal juurdepääs selle porditüübiga seotud toimingutele. Porditüübid on täpselt nagu liidesed. Nii et kui kliendirakendus peab kasutama veebiteenust, peab ta kasutama siduvat teavet, et tagada ühenduse loomine selle veebiteenuse pakutava liidesega.

  5. tag on antud nimi veebiteenus ise. Esialgu, kui kliendirakendus helistab veebiteenusele, helistab see veebiteenuse nimele. Näiteks võib veebiteenus asuda aadressil nagu http: //localhost/Guru99/Tutorial.asmx . Teenusemärgi URL on tegelikult määratletud järgmiselt : http: //localhost/Guru99/Tutorial.asmx , mis tegelikult ütleb kliendirakendusele, et selles asukohas on saadaval veebiteenus.

Miks just WSDL

Veebiteenus on tänapäevaste veebirakenduste loomisel oluline komponent. Nende peamine eesmärk on võimaldada mitmel rakendusel, mis on ehitatud erinevatele programmeerimiskeeltele, omavahel rääkida. Näiteks võib meil olla .Net-i veebirakendus veebiteenuse kaudu Java-rakendusega rääkimas.

Veebiteenusel on järgmised põhifunktsioonid

  • See on üles ehitatud XML-i programmeerimiskeele abil. Peaaegu kõigil tänapäeva tehnoloogiatel, nagu .Net ja Java, on vastavad käsud, millel on võime töötada XML-iga. Seetõttu võeti XML-i veebiteenuste loomiseks kõige sobivamaks keeleks.
  • Veebiteenused suhtlevad HTTP kaudu. HTTP on protokoll, mida kasutavad kõik veebipõhised rakendused. Seega oli mõistlik tagada, et veebiteenustel oleks ka võimalus töötada üle HTTP-protokolli.
  • Veebiteenused vastavad kindlale keelespetsifikatsioonile. Selle spetsifikatsiooni kehtestab W3C, mis on kõigi veebistandardite juhtorgan.
  • Veebiteenustel on kirjelduskeel, mida nimetatakse WSDL-ks, mida kasutatakse veebiteenuse kirjeldamiseks.

WSDL-fail on kirjutatud tavalises vanas XML-is. Põhjus, et see on XML-is, on see, et faili saaks lugeda mis tahes programmeerimiskeel.

Nii et kui kliendirakendus oleks kirjutatud .Netis, mõistaks see XML-faili. Samamoodi, kui kliendirakendus oleks kirjutatud Java programmeerimiskeeles, suudaks see ka WSDL-faili tõlgendada.

WSDL-fail on see, mis seob kõik omavahel. Ülaltoodud diagrammilt näete, et saate veebiteenuse luua .Net-keeles.

Nii et see on koht, kus teenust rakendatakse. Kui teil pole WSDL-faili ja soovite, et Java-klass veebiteenust tarbiks, vajate selle saavutamiseks palju kodeerimisvaeva.

Nüüd aga saate XML-vormingus WSDL-faili abil, mis on arusaadav igale programmeerimiskeelele, nüüd lasta Java klassil hõlpsasti .Net veebiteenust tarbida. Seega on kodeerimispüüdluste hulk oluliselt vähenenud.

WSDL-i sõnumi osa

WSDL koosneb jaotisest nimega "sõnumid", mida tähistab element .

Seda elementi kasutatakse põhiliselt veebiteenuse ja kliendirakenduse vahel vahetatavate andmete kirjeldamiseks.

Igal veebiteenusel on alati kahte tüüpi sõnumeid,

  • Üks on mõeldud veebiteenuse sisendiks ja teine ​​veebiteenuse väljundiks.
  • Sisendit kasutatakse parameetrite kirjeldamiseks, mille veebiteenus aktsepteerib. See on kliendirakenduse oluline aspekt, et see teaks veebiteenusele parameetritena saadetavaid väärtusi.
  • Teist tüüpi teade on väljundsõnum, mis ütleb, milliseid tulemusi veebiteenus pakub.

Igal sõnumil on omakorda element , mida kasutatakse parameetri kirjeldamiseks, mida sisend- ja väljundsõnum kasutavad.

Allpool on lihtne näide sellest, kuidas veebiteenuse sõnum välja näeb. Veebiteenuse funktsionaalsus on anda "Õpetuse" nimi, kui veebiteenusele on parameetrina esitatud "Õpetuse ID".

  1. Nagu näeme, on veebiteenusel kaks sõnumit, üks sisendi ja teine ​​väljundi jaoks.
  2. Sisendteadet nimetatakse TutorialNameRequest, millel on üks parameeter nimega TutorialID. See parameeter on tüübinumbriga, mille määrab tüüp xsd: number
  3. Väljundsõnum on tuntud kui TutorialNameResponse, millel on üks parameeter nimega TutorialName. See parameeter on tüüpi string, mille määrab tüüp xsd: string

Pordi tüübi sidumine

Porde kasutatakse WSDL-is ühe täieliku toimingu määratlemiseks, mida veebiteenus pakub.

Eelmises teemas nägime, et meie veebiteenus edastas 2 sõnumit, ühe sisendi nimega "TutorialNameRequest" ja teise väljundi nimega "TutorialNameResponse". Sisend- ja väljundsõnumi vorm on koos tuntud kui üks täielik toiming.

WSDL pakub elementi nimega , mida kasutatakse veebiteenuse pakutavate toimingute määratlemiseks.

Nii et meie ülaltoodud näites võime märkida järgmist:

  1. Operatsiooni kapseldava pordi tüübi nimi on "Tutorial_PortType".
  2. Operatsioonile antakse nimi "Õpetus". Seega annab meie operatsioon põhimõtteliselt TutorialName, kui sisendparameetrina on antud TutorialID.
  3. Järgmine on meie kaks sõnumit, üks sisendi ja teine ​​väljundi jaoks, mis moodustab meie toimingu

Lisaks elemendile on ka element , mida kasutatakse sõnumite edastamise määratlemiseks.

  1. Ülaltoodud näide näitab, et köitmine koosneb siduvast nimest, mis on antud juhul "TutorialSoapBinding". Lihtsamalt öeldes on teave, mida kliendirakendus kasutab end veebiteenusega tegelikult sidumiseks. Kui see on tegelikult veebiteenusega seotud, on tal võimalus helistada erinevatele toimingutele, mida veebiteenus kokku puutub.
  2. Transpordikiht on antud aadressil http: //, mis tähendab, et sõnumid, mis edastatakse üle HTTP-protokolli.

WSDL-faili loomine

WSDL-fail luuakse alati, kui veebiteenus on üles ehitatud mis tahes programmeerimiskeeles.

Kuna WSDL-faili on täiesti nullist genereerimine üsna keeruline, loovad kõik redaktorid, näiteks Visual Studio for .Net ja Java jaoks mõeldud Eclipse, WSDL-faili automaatselt.

Allpool on näide Visual Studios loodud WSDL-failist.




TutorialService

Ülaltoodud WSDL-fail tundub igale kasutajale väga hirmutav, käsitleme erinevaid osi üksikasjalikult järgmistes õpetustes, kuid nüüd vaatame kokkuvõtlikult, mida tegelikult teevad kõik WSDL-faili jaotised

Veebiteenuse näite avaldamine

Vaatame nüüd näidet, kuidas saaksime Visual Studiot kasutades veebiteenust avaldada ja seda tarbida.

Selles näites loome ühe WebMethodiga veebiteenuse. See meetod aktsepteerib parameetri Integer nimega "TutorialID". Seejärel tagastab veebimeetod stringi nimega "Veebiteenused".

Seejärel loome konsoolipõhise rakenduse, mis tarbib seda veebiteenust ja kutsub vastavalt sellele meie veebimeetodit.

Vaatame selle näite teostamiseks vajalikke samme.

1. samm. Esimene samm on oma veebiteenuse loomine. Siinkohal on selgitatud Asp.Neti veebiprojekti ja veebiteenuse loomise üksikasjalikke samme; Projekti ja veebiteenuse loomiseks järgige samu samme. Peamine osa on allpool oleva koodi sisestamine veebiteenuste faili.

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

Koodi selgitus:

  1. Siin loome veebimeetodi nimega "Guru99WebService". Sellesse veebimeetodisse lisame täisarvuparameetri, mis tuleb edastada alati, kui seda veebimeetodit kutsutakse.
  2. Järgmisena määratleme muutuja nimega "TutorialName", mis hoiab "Web Services" stringi väärtust. See on väärtus, mis tagastatakse veebiteenuse kutsumisel.

2. samm. Kui oleme veebiteenuste faili määratlenud, on järgmine samm luua kliendiprojekt, mis seda veebiteenust tarbib.

Loome lihtsa konsoolirakenduse, mis helistab sellele veebiteenusele, kutsub esile "Guru99WebService" ja kuvab seejärel veebimeetodi väljundi konsooli logiekraanil. Konsoolirakenduse loomiseks toimige järgmiselt.

Paremklõpsake Visual Studio lahenduse failil ja valige suvand Lisa-> Uus projekt

Samm 3) Selles etapis

  1. Kõigepealt valige Visual C # Windowsi valik. Seejärel valige konsoolirakenduse loomise võimalus.
  2. Pange oma projektile nimi, mis on antud juhul "DemoApplication".

Kui olete klõpsanud ülaltoodud ekraanil nuppu OK, näete projekti Visual Studios lahenduste uurijas.

Samm 4) Selles etapis määrate käivitusprojektina rakenduse DemoApplication Console. Seda tehakse tagamaks, et see rakendus käivitatakse kõigepealt, kui kogu Visual Studio projekt on käivitatud. See konsoolirakendus helistab omakorda veebiteenusele, mille Visual Studio automaatselt käivitab.

Selle toimingu lõpetamiseks paremklõpsake projekti DemoApplication ja valige suvand "Määra StartUp-projektina".

Samm 5) Järgmine samm on lisada meie "Guru99Webservice" teenuse viide meie konsoolirakendusse. Seda tehakse selleks, et DemoApplication saaks viidata veebiteenusele ja kõigile veebiteenuse veebimeetoditele.

Selleks paremklõpsake projektifailil DemoApplication ja valige menüüvalik Lisa-> Teenuse viide.

6. samm. Selles etapis esitame erinevad väärtused, mida on vaja meie teenuse viite lisamiseks

  1. Esiteks peame valima oma avastamisvõimaluse. See valik võtab automaatselt meie TutorialService'i veebiteenuse jaoks kätte WSDL-faili.
  2. Järgmisena peaksime andma oma teenusele viite. Meie puhul anname sellele nime Guru99Webservice.
  3. Seejärel peame laiendama valikut TutorialService.asmx, et meil oleks võimalus paremas servas näha meetodit GetTutorialService. Siin on TutorialService.asmx meie Visual Studio .Net-faili nimi, mis sisaldab meie veebiteenuse koodi.
  4. Seejärel näeme oma veebimeetodit, mis meil oli meie veebiteenuses "GetTutorialService"

Kui klõpsame nuppu OK, lisatakse kogu sellele veebiteenusele juurdepääsemiseks vajalik kood meie rakendusse DemoApplication Console, nagu allpool näidatud.

Ekraanipilt näitab, et "Guru99Webservice" lisati edukalt meie konsoolirakendusse.

Samm 7) Järgmine samm on lisada kood meie konsoolirakendusse, et pääseda juurde veebimeetodisse meie veebiteenuses. Avage konsoolirakendusega automaatselt kaasas olev programmifail Program.cs ja lisage allolev kood

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

Koodi selgitus: -

  1. Esimene osa on fail Program.cs valimine. See on põhifail, mille Visual Studio loob konsoolirakenduse loomisel. See fail käivitatakse siis, kui konsoolirakendus (meie puhul demorakendus) käivitatakse.
  2. Seejärel loome muutuja nimega "klient", mis määratakse meie varasemas etapis loodud meie teenuse viite eksemplariks. Meie puhul on teenuse viide 'Guru99Webservice.Guru99WebserviveSoapClient ()'
  3. Seejärel kutsume veebiteenuses TutorialService oma veebimeetodit GetTutorialService. Pidage meeles, et meetod GetTutorialService aktsepteerib täisarvuparameetrit, seega edastame veebimeetodile lihtsalt täisarvuparameetri.
  4. See viimane rida on lihtsalt selleks, et tagada konsooli logiekraani aktiivsus, et saaksime väljundit vaadata. See käsk lihtsalt ootab kasutaja sisendit.

Väljund

Kui kõik ülaltoodud sammud on täidetud ja DemoApplication on käivitatud, kuvatakse allpool olev väljund.

Väljundist näeme selgelt, et DemoApplication kutsub meie veebiteenust ja et veebiteenuse tagastatud string kuvatakse meie konsoolilogis.

Kokkuvõte

  • WSDL-i täielik vorm on veebiteenuste kirjelduskeel
  • WSDL-dokument on dokument, mida kasutatakse veebiteenuse kirjeldamiseks. See on kõigi kliendirakenduste jaoks võti, et teada saada, kus veebiteenus asub. Samuti võimaldab see kliendirakendusel mõista veebiteenuses saadaolevaid meetodeid.
  • WSDL-fail muudab veebiteenuse juurutamise ühes programmeerimiskeeles ja helistamiseks erinevast programmeerimiskeelest väga lihtsaks.
  • WSDL-dokument koosneb tavaliselt sõnumist. Iga veebimeetodi jaoks on 2 sõnumit, üks on sisendiks ja teine ​​väljundiks. Koos moodustavad nad operatsiooni.
  • Veebiteenuste kirjelduskeele (tähistab WSDL) failid luuakse tavaliselt redaktoris, mida kasutatakse vastavas programmeerimiskeeles.
  • Oleme näinud, kuidas saame Visual Studios veebiteenust tarbida. Seda saab teha, luues teise projekti, mis on konsoolirakendus. Seejärel on teenuse viite lisamisega meil juurdepääs veebimeetoditele meie veebiteenuses.