Mis on WSDL? Tähendus ja näide

⚡ Nutikas kokkuvõte

WSDL (veebiteenused Description Language) on XML-põhine fail, mis annab kliendirakendusele teada, mida veebiteenus teeb ja kuidas seda kutsuda. See ressurss selgitab WSDL-i struktuuri, elemente, sõnumeid, portide tüüpe, seoseid ja avaldamise näidet.

  • 📄 Põhidefinitsioon: WSDL on XML-fail, mis kirjeldab veebiteenuse asukohta, toiminguid ning sõnumeid, mida see vastu võtab ja tagastab.
  • 🏗️ Dokumendi struktuur: WSDL-dokument on korraldatud tüüpideks, sõnumiks, pordi tüübiks, sidumiseks ja teenuse elementideks, mis on pakitud definitsiooni juurkataloogi.
  • 🔤 Põhielemendid: Element „types” määratleb andmetüübid, element „message” määratleb vahetatud andmed, element „portType” rühmitab toimingud ja element „binding” seob need protokolliga.
  • ✉️ Sõnumid ja pordid: Iga veebimeetod kasutab sisend- ja väljundsõnumit, mis koos moodustavad ühe porditüübi kaudu avaldatud operatsiooni.
  • 🛠️ Automaatselt genereeritud: Redaktorid, näiteks Visual Studio ja Eclipse genereerib automaatselt WSDL-faili, mida kliendirakendused teenuse kutsumiseks kasutavad.

Mis on WSDL?

Mis on WSDL?

Web Services Descriptioonkeel (WSDL) on XML-põhine fail, mis põhimõtteliselt ütleb kliendirakendusele, mida veebiteenus teeb. WSDL-faili kasutatakse veebiteenuse tegemiste lühikirjelduseks ja annab kliendile kogu vajaliku teabe veebiteenusega ühenduse loomiseks ja kõigi veebiteenuse pakutavate funktsioonide kasutamiseks.

Selles õpetuses keskendume veebiteenuste kõige olulisemale osale, milleks on WSDL ehk veebiteenused. Descriptioonkeel. See toimib vastuvõtjanatracveebiteenuse ja iga kliendi vahel, kes soovib seda tarbida.

WSDL-dokumendi struktuur

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

  • WSDL-fail sisaldab veebiteenuse asukohta ja
  • Meetodid, mida veebiteenus avaldab.

WSDL-fail ise võib igale kasutajale tunduda väga keeruline, kuid see sisaldab kogu vajalikku teavet, mida iga kliendirakendus vajaks asjakohase veebiteenuse kasutamiseks. Allpool on toodud WSDL-faili üldine struktuur:

  • Määratlus
  • TargetNimeruum
  • Andmetüübid
  • Sõnumid
  • Porditüüp
  • Sidemed
  • Teenus

Üks oluline asi, mida siinkohal märkida, on sõnumite definitsioon, mis on see, mida edastab SOAP protokoll, on tegelikult WSDL-dokumendis defineeritud. WSDL-dokument ütleb kliendirakendusele, milliseid SOAP-sõnumeid veebiteenus saadab ja aktsepteerib.

Teisisõnu, WSDL on nagu postkaart, millel on konkreetse asukoha aadress. Aadress annab üksikasjad selle kohta, kuhu sõnum tuleks edastada. Seega on WSDL-fail samamoodi postkaart, millel on veebiteenuse aadress, mis suudab pakkuda kogu kliendi soovitud funktsionaalsust.

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

Allpool on WSDL-faili struktuuri diagramm.

WSDL-dokumendi struktuur

WSDL-i struktuur

WSDL elemendid

WSDL-fail sisaldab järgmisi põhiosi:

  1. . Silti kasutatakse kõigi keeruliste andmetüüpide määratlemiseks, mida kasutatakse kliendirakenduse ja veebiteenuse vahel vahetatavas sõnumis. See on oluline, sest kui veebiteenus töötab keeruka andmetüübiga, peaks kliendirakendus teadma, kuidas seda töödelda. Andmetüübid, nagu ujukoma, arv ja string, on kõik lihtsad andmetüübid, kuid veebiteenus võib pakkuda ka struktureeritud andmetüüpe. Näiteks võib olla andmetüüp nimega EmployeeDataType, millel võib olla kaks elementi nimega „EmployeeName“ tüübiga string ja „EmployeeID“ tüübiga number või täisarv. Koos moodustavad need keeruka andmetüübi.
  2. . Silti kasutatakse kliendirakenduse ja veebiserveri vahel vahetatava sõnumi määratlemiseks. Need sõnumid selgitavad veebiteenuse sisend- ja väljundtoiminguid. Sõnumi näide võib olla sõnum, mis aktsepteerib töötaja töötaja ID-d, ja väljundsõnum võib olla töötaja nimi, mis põhineb esitatud töötaja ID-l.
  3. . silti kasutatakse iga sisend- ja väljundsõnumi kapseldamiseks ühte loogilisse operatsiooni. Seega võib olla toiming nimega "GetEmployee", mis ühendab sisendsõnumi, mille kohaselt võetakse kliendirakendusest töötaja ID vastu ja saadetakse seejärel väljundsõnumina EmployeeName.
  4. . Silti kasutatakse toimingu sidumiseks kindla porditüübiga. See on nii, et kui kliendirakendus kutsub vastavat porditüüpi, pääseb see juurde sellega seotud toimingutele. Porditüübid on täpselt nagu liidesed. Seega, kui kliendirakendus peab kasutama veebiteenust, peab ta kasutama sidumisteavet, et tagada ühenduse loomine selle veebiteenuse pakutava liidesega.
  5. . silt on veebiteenusele endale antud nimi. Algselt, kui kliendirakendus veebiteenusele helistab, teeb ta seda veebiteenuse nime kutsudes. Näiteks võib veebiteenus asuda aadressil http://localhost/Guru99/Tutorial.asmx. Teenusesildil on URL määratletud, mis annab kliendirakendusele teada, et selles asukohas on saadaval veebiteenus.

Miks WSDL

Veebiteenus on tänapäevaste veebirakenduste loomisel oluline komponent. Nende peamine eesmärk on võimaldada mitmel erinevatel programmeerimiskeeltel loodud rakendusel omavahel suhelda. Näiteks võib meil olla .Net veebirakendus, mis suhtleb Java rakendus veebiteenuse kaudu.

Veebiteenusel on järgmised põhifunktsioonid:

  • See on loodud XML-programmeerimiskeelt kasutades. Peaaegu kõik tänapäevased tehnoloogiad, näiteks .Net ja Java omama vastavaid käske, millel on võimalus töötada XML-iga. Seetõttu peeti XML-i veebiteenuste loomiseks sobivaimaks keeleks.
  • Veebiteenused suhtlevad HTTP kaudu. HTTP on protokoll, mida kasutavad kõik veebipõhised rakendused. Seega oli mõistlik tagada, et ka veebiteenused saaksid HTTP protokolli kaudu töötada.
  • Veebiteenused vastavad teatud keele spetsifikatsioonile. Selle spetsifikatsiooni määrab W3C, mis on kõigi veebistandardite juhtorgan.
  • Veebiteenustel on WSDL-i kirjelduskeel, mida kasutatakse veebiteenuse kirjeldamiseks.

WSDL-fail on kirjutatud tavalises XML-is. Põhjus, miks see on XML-is, on see, et faili saaks lugeda iga programmeerimiskeel. Seega, kui kliendirakendus on kirjutatud .Net-is, saab see XML-failist aru. Samamoodi, kui kliendirakendus on kirjutatud ... Java programmeerimiskeeles, siis suudaks see tõlgendada ka WSDL-faili.

WSDL-i vajadus

WSDL-fail seob kõik kokku. Ülaltoodud diagrammilt näete, et saate luua veebiteenuse .Net keeles. Seega siin teenus rakendatakse. Kui teil polnud WSDL-faili ja soovisite Java klassi veebiteenuse tarbimiseks, vajaksite selle saavutamiseks palju kodeerimistööd. Kuid nüüd, WSDL-failiga, mis on XML-vormingus ja mida saab mõista mis tahes programmeerimiskeeles, saate hõlpsalt luua Java klass tarbivad .Neti veebiteenust. Seega väheneb kodeerimispinge oluliselt.

WSDL sõnumi osa

WSDL koosneb jaotisest "sõnumid", mida tähistatakse element. Seda elementi kasutatakse põhimõtteliselt 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 veebiteenuse poolt aktsepteeritavate parameetrite kirjeldamiseks. See on klientrakenduse oluline aspekt, et see teaks väärtusi, mis saadetakse veebiteenusele parameetritena.
  • Teist tüüpi sõnum on väljundsõnum, mis ütleb, milliseid tulemusi veebiteenus pakub.

Igal sõnumil on omakorda a element, mida kasutatakse sisend- ja väljundsõnumis kasutatava parameetri kirjeldamiseks.

Allpool on lihtne näide veebiteenuse sõnumist. Veebiteenuse funktsioon on pakkuda õpetuse nime pärast seda, kui õpetuse ID on veebiteenusele parameetrina esitatud.

WSDL sõnumi osa

  1. Nagu näeme, on veebiteenusel kaks sõnumit, üks sisendiks ja teine ​​väljundiks.
  2. Sisendsõnum kannab nime TutorialNameRequest, millel on üks parameeter nimega TutorialID. See parameeter on tüüpi number, mis on määratud tüübiga xsd:number.
  3. Väljundsõnum kannab nime TutorialNameResponse, millel on üks parameeter nimega TutorialName. See parameeter on tüüpi string, mis on määratud tüübiga xsd:string.

Port Type Binding

WSDL-is kasutatakse porte ühe täieliku toimingu määratlemiseks, mida veebiteenus pakub. Eelmises teemas nägime, et meie veebiteenus pakkus kahte sõnumit: ühe sisendiks nimega „TutorialNameRequest“ ja teise väljundiks nimega „TutorialNameResponse“. Sisend- ja väljundsõnumid moodustavad koos ühe täieliku toimingu.

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

Pordi tüüp Siduv pordi tüüp

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

  1. Toimingut hõlmava porditüübi nimi on „Tutorial_PortType”.
  2. Toimingule endale antakse nimi „Õpetus“. Seega annab meie toiming põhimõtteliselt ÕpetuseNimi, kui sisendparameetrina on antud ÕpetuseID.
  3. Järgmisena on meie kaks sõnumit, üks sisendi ja teine ​​väljundi jaoks, mis moodustavad meie operatsiooni.

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

Pordi tüüp Sidumine sidumine

  1. Ülaltoodud näide näitab, et sidumine koosneb sidumisnimest, mis meie puhul on „TutorialSoapBinding“. Lihtsamalt öeldes on sidumine teave, mida kliendirakendus kasutab veebiteenusega sidumiseks. Kui see on veebiteenusega seotud, saab see kutsuda välja erinevaid veebiteenuse poolt avaldatud toiminguid.
  2. Transpordikiht on antud kujul http://, mis tähendab, et sõnumid edastatakse HTTP protokolli kaudu.

WSDL-faili loomine

WSDL-fail luuakse iga kord, kui veebiteenus luuakse mis tahes programmeerimiskeeles. Kuna WSDL-faili on üsna keeruline nullist genereerida, siis kõik redaktorid, näiteks Visual Studio for .Net ja Eclipse eest Java luua automaatselt WSDL-fail.

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

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

Ülaltoodud WSDL-fail tundub igale kasutajale väga hirmuäratav. Järgnevates õpetustes käsitleme selle erinevaid osi üksikasjalikumalt, aga praegu vaatame lühidalt, mida WSDL-faili iga osa tegelikult teeb.

Veebiteenuse näite avaldamine

Vaatame nüüd näidet, kuidas Visual Studio abil veebiteenust avaldada ja kasutada. Selles näites loome veebiteenuse ühe WebMethod'i abil. See meetod aktsepteerib täisarvulist parameetrit nimega „TutorialID“. Seejärel tagastab Web-meetod stringi nimega „Web Services“.

Seejärel loome konsoolipõhise rakenduse, mis kasutab seda veebiteenust ja kutsub vastavalt sellele meie veebimeetodit. Vaatame selle näite elluviimiseks vajalikke samme.

Step 1) Esimene samm on veebiteenuse loomine. Üksikasjalikud sammud, kuidas Asp.Net veebiprojekti ja veebiteenuse loomise põhimõtet on selgitatud. siinPalun järgige samu samme projekti ja veebiteenuse loomiseks. Peamine on sisestada allolev kood veebiteenuste faili.

Veebiteenuse näidisveebiteenuse koodi avaldamine

namespace webservic_asmx
{
   [WebService(Name = "Guru99 Web service")]
   public class TutorialService : System.Web.Services.WebService
   {
      [WebMethod]
      public string GetTutorialService(int TutorialID)
      {
         string TutorialName = "Web Services";
         return TutorialName;
      }
   }
}

Code Selgitus:

  1. Siin loome veebimeetodi nimega „Guru99WebService.” Selles veebimeetodis on täisarvuline parameeter, mis tuleb edastada iga kord, kui seda veebimeetodit kutsutakse.
  2. Järgmisena määratleme muutuja nimega "TutorialName", mis sisaldab "Web Services" stringi väärtust. See on väärtus, mis tagastatakse veebiteenuse kutsumisel.

Step 2) Kui oleme veebiteenuste faili defineerinud, on järgmine samm luua kliendiprojekt, mis seda veebiteenust kasutab. Loome lihtsa konsoolirakenduse, mis kutsub selle veebiteenuse välja ja käivitab „Guru99WebService” ja seejärel kuvage veebimeetodi väljund konsooli logiekraanil. Konsoolirakenduse loomiseks järgige alltoodud samme. Paremklõpsake Visual Studio lahendusfailil ja valige suvand Lisa-> Uus projekt.

Veebiteenuse näite avaldamine uue projekti lisamiseks

Step 3) Selles sammus

  1. Valige esmalt Visual C# Windows valik. Seejärel valige konsoolirakenduse loomise võimalus.
  2. Andke oma projektile nimi, mis meie puhul on antud kui "DemoApplication".

Veebiteenuse näidiskonsoolirakenduse avaldamine

Pärast ülaltoodud ekraanil nupule OK klõpsamist näete projekti Visual Studio lahenduste brauseris.

Veebiteenuse näite lahenduste uurija avaldamine

Step 4) Selles etapis määrate DemoApplication Console'i ​​rakenduse käivitusprojektiks. Seda tehakse tagamaks, et see rakendus käivitub esimesena, kui kogu Visual Studio projekt käivitatakse. See konsoolirakendus kutsub omakorda veebiteenuse, mille Visual Studio automaatselt käivitab. Selle etapi lõpuleviimiseks paremklõpsake DemoApplicationi projektil ja valige suvand „Määra käivitusprojektiks“.

Veebiteenuse näidiskomplekti avaldamine käivitusprojektina

Step 5) Järgmine samm on lisada meie teenuse viide „Guru99Webservice” meie konsoolirakendusse. Seda tehakse selleks, et DemoApplication saaks viidata veebiteenusele ja kõigile veebiteenuses olevatele veebimeetoditele. Selleks paremklõpsake DemoApplicationi projektifailil ja valige menüüvalik Lisa->Teenuse viide.

Veebiteenuse näite avaldamine, teenuse viite lisamine

Step 6) Selles etapis pakume erinevaid väärtusi, mis on vajalikud meie teenuse viite lisamiseks.

  1. Esiteks peame valima avastamisvaliku. See valik valib automaatselt WSDL-faili meie TutorialService veebiteenuse jaoks.
  2. Järgmisena peaksime oma teenuseviitele nime andma. Meie puhul anname sellele nimeks Guru99Veebiteenus.
  3. Seejärel peame laiendama valikut TutorialService.asmx, et näeksime paremal pool 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 oli meie veebiteenuses nimega „GetTutorialService”.

Veebiteenuse näidisteenuse viiteväärtuste avaldamine

Kui klõpsame nupul „OK“, lisatakse kogu sellele veebiteenusele juurdepääsuks vajalik kood meie DemoApplication Console'i ​​rakendusse, nagu allpool näidatud. Ekraanipildil on näha, et „Guru„99Webservice” lisati edukalt meie konsoolirakendusse.

Veebiteenuse näidisteenuse avaldamine on lisatud

Step 7) Järgmine samm on koodi lisamine meie konsoolirakendusse, et pääseda ligi meie veebiteenuses olevale veebimeetodile. Avage konsoolirakendusega automaatselt kaasasolev Program.cs koodifail ja lisage allolev kood.

Veebiteenuse näidisprogrammi Program.cs koodi avaldamine

namespace DemoApplication
{
   class Program
   {
      static void Main(string[] args)
      {
         var client = new Guru99Webservice.Guru99WebserviceSoapClient();

         Console.WriteLine(client.GetTutorialService(1));

         Console.ReadKey();
      }
   }
}

Code Selgitus:

  1. Esimene osa on valida fail Program.cs. See on peamine fail, mille Visual Studio loob konsoolirakenduse loomisel. See fail käivitatakse konsoolirakenduse (meie puhul DemoApplication) käivitamisel.
  2. Seejärel loome muutuja nimega „klient“, mis määratakse meie teenuse viite eksemplariks, mis loodi varasemas etapis. Meie puhul on teenuse viide 'Guru99Veebiteenus.Guru99VeebiteenuseSeepKlient()'.
  3. Seejärel kutsume TutorialService'i veebiteenuses välja oma veebimeetodi 'GetTutorialService'. Pidage meeles, et meie GetTutorialService meetod aktsepteerib täisarvulist parameetrit, seega edastame veebimeetodile lihtsalt täisarvulise parameetri.
  4. See viimane rida on lihtsalt selleks, et konsooli logiekraan jääks aktiivseks, et saaksime väljundit vaadata. See käsk ootab kasutaja sisendit.

Väljund

Kui kõik ülaltoodud sammud on järgitud ja demorakendus käivitatud, kuvatakse allolev väljund.

Veebiteenuse näite väljundi avaldamine

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

KKK

Tehisintellekt suudab lugeda keerukat WSDL-i, selgitada selle toiminguid lihtsas keeles, genereerida näidispäringuid ja märkida ära vastuolud päringute vahel.tract ja juurutamine. See kiirendab integratsiooni tundmatute või vananenud SOAP-veebiteenustega.

Jah. Tehisintellekti assistendid saavad WSDL-definitsiooni muuta kliendi tüvedeks, andmemudeliteks ja näidiskõnedeks sellistes keeltes nagu C#, Javavõi PythonArendajad peaksid ikkagi genereeritud koodi üle vaatama, et veenduda nimeruumide õigsuses ja veakäsitluses.

SOAP on sõnumiprotokoll, mis edastab tegelikku XML-päringut ja -vastust. WSDL on kirjeldusfail, mis ütleb kliendile, milliseid toiminguid SOAP-veebiteenus pakub ja kuidas neid kutsuda. Neid kasutatakse koos.

Jah. WSDL jääb standardiks SOAP-veebiteenustele ettevõtetes, pangandus- ja valitsussüsteemides, mis vajavad ametlikku kontrolli.tracUuemad REST API-d kasutavad tavaliselt OpenAPI-d (Swagger), kuid paljud pärandintegratsioonid sõltuvad endiselt WSDL-ist.

Võta see postitus kokku järgmiselt: