Hvad er WSDL?
Web Services Description Language (WSDL) er en XML-baseret fil, der grundlæggende fortæller klientapplikationen, hvad webservicen gør. WSDL-filen bruges i en nøddeskal til at beskrive, hvad webservicen gør, og giver klienten al den information, der kræves for at oprette forbindelse til webtjenesten og bruge al den funktionalitet, der leveres af webservicen.
I denne vejledning vil vi fokusere på det sidste punkt, der er den vigtigste del af webtjenester, og det er WSDL eller beskrivelsessproget for webtjenester.
WSDL-filen bruges i en nøddeskal til at beskrive, hvad webservicen gør, og giver klienten al den information, der kræves for at oprette forbindelse til webtjenesten og bruge al den funktionalitet, der leveres af webservicen.
I denne vejledning lærer du-
- Struktur af et WSDL-dokument
- WSDL-elementer
- Hvorfor WSDL
- WSDL-meddelelsesdel
- Porttype bindende
- Oprettelse af WSDL-fil
- Udgivelse af webservisexemplet
Struktur af et WSDL-dokument
Et WSDL-dokument bruges til at beskrive en webservice. Denne beskrivelse er påkrævet, så klientapplikationer er i stand til at forstå, hvad webservicen faktisk gør.
- WSDL-filen indeholder placeringen af webservicen og
- De metoder, som eksponeres af webservicen.
WSDL-filen i sig selv kan se meget kompleks ud for enhver bruger, men den indeholder alle de nødvendige oplysninger, som ethvert klientprogram vil kræve for at bruge den relevante webservice.
Nedenfor er den generelle struktur for en WSDL-fil
- Definition
- TargetNamespace
- Datatyper
- Beskeder
- Porttype
- Bindinger
- service
En vigtig ting at bemærke her er, at definitionen af meddelelser, som er det, der sendes af SOAP-protokollen, faktisk er defineret i WSDL-dokumentet.
WSDL-dokumentet fortæller faktisk en klientapplikation, hvilke typer SOAP-meddelelser der sendes og accepteres af webtjenesten.
Med andre ord er WSDL ligesom et postkort, der har adressen på et bestemt sted. Adressen indeholder oplysninger om den person, der leverede postkortet. Derfor er WSDL-filen på samme måde postkortet, som har adressen på webservicen, der kan levere al den funktionalitet, som klienten ønsker.
… … … … …
Nedenfor er et diagram over strukturen i en WSDL-fil

WSDL-elementer
WSDL-filen indeholder følgende hoveddele
-
Den
tag bruges til at definere alle de komplekse datatyper, som vil blive anvendt i meddelelsen udveksles mellem klientprogrammet og webservicen. Dette er et vigtigt aspekt af klientapplikationen, for hvis webtjenesten fungerer med en kompleks datatype, skal klientapplikationen vide, hvordan man behandler den komplekse datatype. Datatyper som float, tal og strenge er alle enkle datatyper, men der kan være strukturerede datatyper, som kan leveres af webservicen. For eksempel kunne der være en datatype kaldet EmployeeDataType, som kunne have 2 elementer kaldet "EmployeeName" af typestrengen og "EmployeeID" af typenummer eller heltal. Sammen danner de en datastruktur, som derefter bliver en kompleks datatype.
-
Den
tag bruges til at definere det budskab, som udveksles mellem klientprogrammet og webserveren. Disse meddelelser forklarer input- og outputhandlinger, som kan udføres af webservicen. Et eksempel på en besked kan være en besked, der accepterer medarbejder-ID for en medarbejder, og output-beskeden kan være navnet på medarbejderen baseret på den leverede EmpoyeeID. -
Den
tag bruges til at indkapsle hver input og output besked til én logisk betjening. Så der kunne være en operation kaldet "GetEmployee", der kombinerer inputmeddelelsen om at acceptere EmployeeID fra et klientprogram og derefter sende EmployeeName som outputmeddelelse. -
Den
tag bruges til at binde den operation, den bestemte port type. Dette er sådan, at når klientapplikationen kalder den relevante porttype, vil den derefter kunne få adgang til de operationer, der er bundet til denne porttype. Porttyper er ligesom grænseflader. Så hvis en klientapplikation har brug for en webservice, skal de bruge de bindende oplysninger for at sikre, at de kan oprette forbindelse til den grænseflade, der leveres af denne webservice. -
Den
tag er et navn givet til webtjenesten selv. Først når et klientapplikation foretager et opkald til webservicen, gør det det ved at kalde navnet på webservicen. For eksempel kan en webservice findes på en adresse såsom http: //localhost/Guru99/Tutorial.asmx . Servicemærket vil faktisk have URL'en defineret som http: //localhost/Guru99/Tutorial.asmx , som faktisk fortæller klientapplikationen, at der er en webservice tilgængelig på dette sted.
Hvorfor WSDL
En webservice er en vigtig komponent i opbygningen af moderne webapplikationer. Deres hovedformål er at tillade flere applikationer, der er bygget på forskellige programmeringssprog, at tale med hinanden. For eksempel kan vi have en .Net-webapplikation samtaler til en Java-applikation via en webservice.
En webservice har følgende nøglefunktioner
- Det er bygget ved hjælp af XML-programmeringssprog. Næsten alle moderne teknologier såsom .Net og Java har tilsvarende kommandoer, der har evnen til at arbejde med XML. Derfor blev XML taget som det mest passende sprog til opbygning af webservices.
- Webtjenester kommunikerer via HTTP. HTTP er en protokol, der bruges af alle webbaserede applikationer. Derfor var det bare fornuftigt at sikre, at webtjenester også havde evnen til at arbejde over HTTP-protokollen.
- Webtjenester overholder en bestemt sprogspecifikation. Denne specifikation er indstillet af W3C, som er det styrende organ for alle webstandarder.
- Webtjenester har et beskrivelsessprog kendt som WSDL, som bruges til at beskrive webservicen.
WSDL-filen er skrevet i almindelig gammel XML. Årsagen til, at det er i XML, er, at filen kan læses af ethvert programmeringssprog.
Så hvis klientapplikationen blev skrevet i .Net, ville den forstå XML-filen. Tilsvarende, hvis klientapplikationen blev skrevet på Java-programmeringssproget, ville den også kunne fortolke WSDL-filen.
WSDL-filen er det, der binder alt sammen. Fra ovenstående diagram kan du se, at du kan oprette en webservice på .Net-sproget.
Så det er her, tjenesten bliver implementeret. Hvis du ikke havde WSDL-filen og ønskede en Java-klasse til at forbruge webservicen, ville du have brug for en masse kodningsindsats for at opnå dette.
Men nu med WSDL-filen, der er i XML, som kan forstås af ethvert programmeringssprog, kan du nu let få en Java-klasse til at forbruge .Net-webtjenesten. Derfor reduceres mængden af kodningsindsats stærkt.
WSDL-meddelelsesdel
WSDL består af et afsnit kaldet "meddelelser", der betegnes med elementet
Dette element bruges grundlæggende til at beskrive de data, der udveksles mellem webservicen og klientapplikationen.
Hver webservice vil altid have to typer beskeder,
- Den ene er til input af webtjenesten, og den anden er for output fra webtjenesten.
- Input bruges til at beskrive de parametre, der accepteres af webservicen. Dette er et vigtigt aspekt af klientapplikationen, så den kender de værdier, der skal sendes som parametre til webservicen.
- Den anden type besked er outputbeskeden, der fortæller, hvilke resultater der leveres af webservicen.
Hver meddelelse har til gengæld et
Nedenfor er et simpelt eksempel på, hvordan en besked til en webservice ser ud. Webtjenestens funktionalitet er at angive navnet på en "Tutorial", når et "Tutorial ID" er indsendt som en parameter til webservicen.
- Som vi kan se, har webtjenesten 2 beskeder, den ene til input og den anden til output.
- Indtastningsmeddelelsen er kendt som TutorialNameRequest, som har en parameter kaldet TutorialID. Denne parameter er af typenummeret, der er specificeret af xsd: number-typen
- Outputmeddelelsen er kendt som TutorialNameResponse, som har en parameter kaldet TutorialName. Denne parameter er af typen streng, der er angivet af xsd: streng type
Porttype bindende
Porte bruges i WSDL til at definere en komplet operation, der tilbydes af webservicen.
I det forrige emne så vi, at vores webservice leverede 2 meddelelser, den ene til input kaldet "TutorialNameRequest" og den anden til output kaldet "TutorialNameResponse." Sammen er input- og outputmeddelelsesformularen kendt som en komplet operation.
WSDL leverer et element kaldet
Så i vores ovenstående eksempel kan vi bemærke følgende:
- Navnet på porttypen, der indkapsler handlingen, gives som "Tutorial_PortType".
- Selve operationen får navnet "Tutorial". Så vores operation giver dybest set et tutorialnavn, hvis tutorial-ID'en er angivet som en inputparameter.
- Dernæst er vores 2 beskeder, en til input og den anden til output, der danner vores operation
Ud over
- Ovenstående eksempel viser, at bindingen består af et bindende navn, som i vores tilfælde er givet som "TutorialSoapBinding". Bindende i enkle vendinger er de oplysninger, som klientapplikationen bruger til faktisk at binde sig til webservicen. Når den faktisk er bundet til webtjenesten, har den evnen til at ringe til de forskellige operationer, der udsættes for af webtjenesten.
- Transportlaget er angivet som http: //, hvilket betyder, at de meddelelser, der overføres via HTTP-protokollen.
Oprettelse af WSDL-fil
WSDL-filen oprettes, hver gang en webservice er bygget på ethvert programmeringssprog.
Da WSDL-filen er ret kompliceret at generere fra almindelig bund, opretter alle redaktører såsom Visual Studio til .Net og Eclipse til Java automatisk WSDL-filen.
Nedenfor er et eksempel på en WSDL-fil oprettet i Visual Studio.
TutorialService
Ovenstående WSDL-fil ser meget skræmmende ud for enhver bruger, vi vil dække de forskellige dele i detaljer i de efterfølgende selvstudier, men lad os nu se et resumé af, hvad hver sektion i WSDL-filen faktisk gør
Udgivelse af webservisexemplet
Lad os nu se på et eksempel på, hvordan vi kan udgive en webservice og forbruge den ved hjælp af Visual Studio.
I dette eksempel opretter vi en webservice med en WebMethod. Denne metode accepterer et heltalsparameter kaldet "TutorialID." Webmetoden returnerer derefter en streng kaldet "Webtjenester".
Vi opretter derefter en konsolbaseret applikation, som bruger denne webservice og kalder vores webmetode i overensstemmelse hermed.
Lad os se på de nødvendige trin til at udføre dette eksempel.
Trin 1) Det første trin er at oprette din webservice. De detaljerede trin i, hvordan Asp.Net-webprojektet og en webservice oprettes, er blevet forklaret her; Følg de samme trin for at oprette projektet og webservicen i overensstemmelse hermed. Nøgledelen er at indtaste nedenstående kode i webservicefilen.
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;}}}
Kode Forklaring:
- Her opretter vi en webmetode kaldet "Guru99WebService." I denne webmetode inkluderer vi et heltalsparameter, der skal sendes, når denne webmetode kaldes.
- Dernæst definerer vi en variabel kaldet "TutorialName", som holder strengværdien af "Web Services". Dette er den værdi, der returneres, når webservicen kaldes op.
Trin 2) Når vi har defineret webtjenestefilen, er det næste trin at oprette et klientprojekt, der vil forbruge denne webservice.
Lad os oprette en simpel konsolapplikation, der kalder denne webservice, påberåbe sig "Guru99WebService" og derefter vise output fra webmetoden på konsollogskærmen. Følg nedenstående trin for at oprette en konsolapplikation.
Højreklik på Visual Studio-løsningsfilen, og vælg indstillingen Tilføj-> Nyt projekt
Trin 3) I dette trin
- Sørg for først at vælge Visual C # Windows-indstillingen. Vælg derefter muligheden for at oprette en konsolapplikation.
- Giv et projektnavn, som i vores tilfælde er givet som "DemoApplication."
Når du har klikket på OK-knappen i ovenstående skærm, vil du kunne se projektet i Solution Explorer i Visual Studio.
Trin 4) I dette trin indstiller du DemoApplication Console-applikationen som startprojekt. Dette gøres for at sikre, at denne applikation starter først, når hele Visual Studio-projektet køres. Denne konsolapplikation vil igen ringe til webservicen, der automatisk startes af Visual Studio.
For at gennemføre dette trin skal du højreklikke på DemoApplication-projektet og vælge indstillingen "Angiv som StartUp-projekt."
Trin 5) Det næste trin er at føje servicereferencen til vores "Guru99Webservice" til vores konsolapplikation. Dette gøres, så DemoApplication kan henvise til webservicen og alle webmetoderne i webservicen.
For at gøre dette skal du højreklikke på projektfilen DemoApplication og vælge menupunktet Tilføj-> Servicehenvisning.
Trin 6) I dette trin giver vi de forskellige værdier, der kræves for at tilføje vores servicehenvisning
- For det første skal vi vælge vores mulighed for at opdage. Denne mulighed henter automatisk WSDL-filen til vores TutorialService-webservice.
- Dernæst skal vi give et navn til vores servicehenvisning. I vores tilfælde giver vi det navnet Guru99Webservice.
- Derefter er vi nødt til at udvide indstillingen TutorialService.asmx, så vi kan have mulighed for at se 'GetTutorialService' -metoden på højre side. Her er TutorialService.asmx navnet på vores Visual Studio .Net-fil, der indeholder koden til vores webservice.
- Vi vil så se vores webmetode, som vi havde i vores webservice kendt som "GetTutorialService"
Når vi klikker på knappen 'OK', føjes al den nødvendige kode for at få adgang til denne webservice til vores DemoApplication Console-applikation som vist nedenfor.
Skærmbilledet viser, at "Guru99Webservice" blev tilføjet til vores konsolapplikation.
Trin 7) Det næste trin er at tilføje koden til vores konsolapplikation for at få adgang til webmetoden i vores webservice. Åbn Program.cs-kodefilen, der automatisk følger med konsolapplikationen, og tilføj nedenstående kode
namespace DemoApplication{class Program{static void Main(string[ ] args){var client = new Guru99Webservice.Guru99WebserviceSoapClient();Console.WriteLine(client.GetTutorialService(l));Console.ReadKey();}}}
Kode Forklaring: -
- Den første del er at vælge Program.cs-filen. Dette er hovedfilen, der oprettes af Visual Studio, når der oprettes et konsolprogram. Denne fil er det, der bliver udført, når konsolapplikationen (i vores tilfælde demo-applikation) udføres.
- Vi opretter derefter en variabel kaldet "klient", der indstilles til en forekomst af vores servicehenvisning, som blev oprettet i et tidligere trin. I vores tilfælde er servicehenvisningen 'Guru99Webservice.Guru99WebserviveSoapClient ()'
- Vi kalder derefter vores webmetode 'GetTutorialService' i TutorialService-webtjenesten Husk, at vores GetTutorialService '-metode accepterer et heltalsparameter, så vi sender bare et heltalsparameter til webmetoden.
- Denne sidste linje er bare for at sikre, at konsollogskærmen forbliver aktiv, så vi kan se output. Denne kommando venter bare på noget input fra brugeren.
Produktion
Når alle ovenstående trin følges, og DemoApplication køres, vises nedenstående output.
Fra output kan vi tydeligt se, at DemoApplication kalder vores webservice, og at den streng, der returneres af webtjenesten, vises i vores konsollog.
Resumé
- Fuld form for WSDL er webservices beskrivelsessprog
- Et WSDL-dokument er et dokument, der bruges til at beskrive en webservice. Dette er nøglen til enhver klientapplikation for at vide, hvor webservicen er placeret. Det giver også klientapplikationen mulighed for at forstå de tilgængelige metoder i webservicen.
- WSDL-filen gør det meget nemt for webservicen at blive implementeret på et programmeringssprog og kaldet fra et andet programmeringssprog.
- WSDL-dokumentet består normalt af en meddelelse. For hver webmetode er der 2 beskeder, den ene er for input, og den anden er for output. Sammen danner de en operation.
- Web Services Description Language (står for WSDL) filer oprettes normalt i editoren, der bruges til det tilsvarende programmeringssprog.
- Vi har set, hvordan vi kan forbruge en webservice i Visual Studio. Dette kan gøres ved at oprette et andet projekt, der er en konsolapplikation. Derefter ved at tilføje en servicehenvisning er vi så i stand til at få adgang til webmetoderne i vores webtjeneste.