Какво е WSDL?
Език за описание на уеб услуги (WSDL) е XML-базиран файл, който основно казва на клиентското приложение какво прави уеб услугата. Файлът WSDL се използва за кратко описание на това, което уеб услугата прави и предоставя на клиента цялата информация, необходима за свързване с уеб услугата и използване на цялата функционалност, предоставена от уеб услугата.
В този урок ще се съсредоточим върху последната точка, която е най-важната част от уеб услугите, а това е WSDL или езикът за описание на уеб услугите.
Файлът WSDL се използва за кратко описание на това, което уеб услугата прави и предоставя на клиента цялата информация, необходима за свързване с уеб услугата и използване на цялата функционалност, предоставена от уеб услугата.
В този урок ще научите -
- Структура на WSDL документ
- WSDL елементи
- Защо WSDL
- WSDL част от съобщението
- Обвързване на типа порт
- Създаване на WSDL файл
- Публикуване на пример за уеб услуга
Структура на WSDL документ
За описание на уеб услуга се използва WSDL документ. Това описание е задължително, за да могат клиентските приложения да разберат какво всъщност прави уеб услугата.
- Файлът WSDL съдържа местоположението на уеб услугата и
- Методите, които са изложени от уеб услугата.
Самият файл WSDL може да изглежда много сложен за всеки потребител, но съдържа цялата необходима информация, която всяко клиентско приложение би изисквало, за да използва съответната уеб услуга.
По-долу е дадена общата структура на WSDL файл
- Определение
- TargetNamespace
- Типове данни
- Съобщения
- Порт
- Обвързвания
- обслужване
Едно ключово нещо, което трябва да отбележим тук, е, че дефиницията на съобщенията, която е предадена от протокола SOAP, всъщност е дефинирана в WSDL документа.
Документът WSDL всъщност казва на клиентско приложение какви са типовете SOAP съобщения, които се изпращат и приемат от уеб услугата.
С други думи, WSDL е точно като пощенска картичка, която има адреса на определено място. Адресът предоставя подробности за лицето, което е доставило пощенската картичка. Следователно, по същия начин, WSDL файлът е пощенската картичка, която има адреса на уеб услугата, която може да достави цялата функционалност, която клиентът иска.
… … … … …
По-долу е дадена диаграма на структурата на WSDL файл

WSDL елементи
Файлът WSDL съдържа следните основни части
-
В <видове> таг се използва за определяне на други сложни типове данни, които ще бъдат използвани в съобщението обменя между клиентското приложение и уеб услугата. Това е важен аспект на клиентското приложение, защото ако уеб услугата работи със сложен тип данни, тогава клиентското приложение трябва да знае как да обработва сложния тип данни. Типовете данни като float, цифри и низове са всички прости типове данни, но може да има структурирани типове данни, които могат да бъдат предоставени от уеб услугата.
Например, може да има тип данни, наречен EmployeeDataType, който може да има 2 елемента, наречени "EmployeeName" от тип низ и "EmployeeID" от номер на число или цяло число. Заедно те образуват структура от данни, която след това се превръща в сложен тип данни.
-
В <съобщения> таг се използва за определяне на съобщението, която се обменя между клиентското приложение и уеб сървъра. Тези съобщения ще обяснят операциите за въвеждане и извеждане, които могат да бъдат извършени от уеб услугата. Пример за съобщение може да бъде съобщение, което приема EmployeeID на служител, а изходното съобщение може да бъде името на служителя въз основа на предоставения EmpoyeeID.
-
В
таг се използва за капсулиране на всеки вход и изход съобщение в една логическа операция. Така че може да има операция, наречена "GetEfficiee", която комбинира входното съобщение за приемане на EmployeeID от клиентско приложение и след това изпращане на EmployeeName като изходно съобщение. -
В <свързване> маркер се използва за свързване на действието на конкретния вид порт. Това е така, че когато клиентското приложение извика съответния тип порт, то ще има достъп до операциите, които са обвързани с този тип порт. Типовете портове са точно като интерфейсите. Така че, ако дадено клиентско приложение трябва да използва уеб услуга, те трябва да използват обвързващата информация, за да гарантират, че могат да се свържат с интерфейса, предоставен от тази уеб услуга.
-
В <обслужване> таг е име, дадено на самата уеб услугата. Първоначално, когато клиентско приложение се обади на уеб услугата, това ще стане чрез извикване на името на уеб услугата. Например уеб услуга може да се намира на адрес като http: //localhost/Guru99/Tutorial.asmx . Тагът на услугата всъщност ще има URL адреса, дефиниран като http: //localhost/Guru99/Tutorial.asmx , който всъщност ще каже на клиентското приложение, че на това място има уеб услуга.
Защо WSDL
Уеб услугата е важен компонент при изграждането на съвременни уеб приложения. Основната им цел е да позволят на множество приложения, изградени на различни езици за програмиране, да говорят помежду си. Например, можем да проведем .Net уеб приложение, което да разговаря с приложение на Java чрез уеб услуга.
Уеб услугата има следните ключови функции
- Изграден е с помощта на езика за програмиране XML. Почти всички съвременни технологии като .Net и Java имат съответни команди, които имат способността да работят с XML. Следователно XML беше възприет като най-подходящия език за изграждане на уеб услуги.
- Уеб услугите комуникират през HTTP. HTTP е протокол, използван от всички уеб-базирани приложения. Следователно имаше смисъл да се гарантира, че уеб услугите също имат възможност да работят по протокола HTTP.
- Уеб услугите отговарят на конкретна езикова спецификация. Тази спецификация е определена от W3C, който е ръководен орган за всички уеб стандарти.
- Уеб услугите имат език за описание, известен като WSDL, който се използва за описание на уеб услугата.
WSDL файлът е написан в обикновен стар XML. Причината да е в XML е, за да може файлът да се чете от всеки език за програмиране.
Така че, ако клиентското приложение е написано в .Net, то ще разбере XML файла. По същия начин, ако клиентското приложение е написано на езика за програмиране Java, то също така ще може да интерпретира WSDL файла.
Файлът WSDL е това, което свързва всичко заедно. От горната диаграма можете да видите, че можете да създадете уеб услуга на езика .Net.
Така че тук се прилага услугата. Ако не разполагате с WSDL файла и искате клас Java да използва уеб услугата, ще ви трябват много усилия за кодиране, за да постигнете това.
Но сега с WSDL файла, който е в XML, който може да бъде разбран от всеки език за програмиране, вече можете лесно да накарате Java клас да консумира уеб услугата .Net. Следователно, количеството усилия за кодиране е значително намалено.
WSDL част от съобщението
WSDL се състои от раздел, наречен "съобщения", който се обозначава с елемента <съобщение> .
Този елемент се използва основно за описание на данните, които се обменят между уеб услугата и клиентското приложение.
Всяка уеб услуга винаги ще има 2 вида съобщения,
- Единият е за въвеждане на уеб услугата, а другият е за изхода на уеб услугата.
- Входът се използва за описание на параметрите, които се приемат от уеб услугата. Това е важен аспект на клиентското приложение, така че да знае стойностите, които трябва да бъдат изпратени като параметри към уеб услугата.
- Другият тип съобщение е изходното съобщение, което казва какви резултати се предоставят от уеб услугата.
Всяко съобщение от своя страна ще има елемент
По-долу е даден прост пример за това как изглежда съобщението за уеб услуга. Функционалността на уеб услугата е да предостави името на "Урок", след като "Урок за идентификация" е изпратен като параметър на уеб услугата.
- Както виждаме, уеб услугата има 2 съобщения, едното за входа и другото за изхода.
- Входното съобщение е известно като TutorialNameRequest, което има един параметър, наречен TutorialID. Този параметър е от номера на типа, който е посочен от типа xsd: number
- Изходното съобщение е известно като TutorialNameResponse, което има един параметър, наречен TutorialName. Този параметър е от типа низ, който е определен от типа xsd: string
Обвързване на типа порт
Портовете се използват в WSDL, за да дефинират една цялостна операция, която се предлага от уеб услугата.
В предишната тема видяхме, че нашата уеб услуга предоставя 2 съобщения, едното за входа, наречено „TutorialNameRequest“, а другото за изхода, наречено „TutorialNameResponse“. Заедно входната и изходната форма на съобщението е известна като една цялостна операция.
WSDL предоставя елемент, наречен
Така че в горния ни пример можем да отбележим следното:
- Името на типа порт, който капсулира операцията, се дава като "Tutorial_PortType."
- На самата операция е дадено име "Урок". Така че нашата операция основно предоставя TutorialName, ако TutorialID е даден като входен параметър.
- Следва нашите 2 съобщения, едното за входа и другото за изхода, което формира нашата операция
В допълнение към елемента
- Горният пример показва, че обвързването се състои от име на обвързване, което в нашия случай е дадено като "TutorialSoapBinding". Обвързването с прости термини е информацията, която клиентското приложение използва, за да се обвърже с уеб услугата. След като всъщност е обвързан с уеб услугата, той има възможността да извиква различните операции, които са изложени от уеб услугата.
- Транспортният слой е даден като http: //, което означава, че съобщенията, които ще се прехвърлят по протокола HTTP.
Създаване на WSDL файл
Файлът WSDL се създава, когато уеб услугата е изградена на който и да е език за програмиране.
Тъй като WSDL файлът е доста сложен за генериране от чисто нула, всички редактори като Visual Studio за .Net и Eclipse за Java автоматично създават WSDL файла.
По-долу е даден пример за WSDL файл, създаден в Visual Studio.
TutorialService
Горният WSDL файл изглежда много плашещ за всеки потребител, ние ще разгледаме подробно различните части в следващите уроци, но засега нека да направим обобщен поглед какво всъщност прави всеки раздел от WSDL файла
Публикуване на пример за уеб услуга
Сега нека разгледаме пример за това как можем да публикуваме уеб услуга и да я използваме с помощта на Visual Studio.
В този пример ще създадем уеб услуга с един WebMethod. Този метод ще приеме цяло число параметър, наречен „TutorialID“. След това уеб методът ще върне низ, наречен „Уеб услуги“.
След това ще създадем конзолно приложение, което ще консумира тази уеб услуга и ще извика съответно нашия уеб метод.
Нека да разгледаме стъпките, необходими за извършване на този пример.
Стъпка 1) Първата стъпка е да създадете вашата уеб услуга. Тук са обяснени подробните стъпки за създаването на уеб проекта Asp.Net и уеб услугата; Моля, следвайте същите стъпки, за да създадете съответно проекта и уеб услугата. Ключовата част е да въведете кода по-долу във файла с уеб услуги.
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;}}}
Обяснение на кода:
- Тук създаваме WebMethod, наречен "Guru99WebService." В този уеб метод включваме цяло число параметър, който трябва да бъде предаден, когато се извика този уеб метод.
- След това дефинираме променлива, наречена „TutorialName“, която ще съдържа низовата стойност на „Web Services“. Това е стойността, която ще бъде върната при извикване на уеб услугата.
Стъпка 2) След като дефинираме файла с уеб услуги, следващата стъпка е да създадем клиентски проект, който да консумира тази уеб услуга.
Нека създадем просто конзолно приложение, което ще извика тази уеб услуга, ще извика "Guru99WebService" и след това ще покаже изхода на уеб метода в екрана на конзолата. Следвайте стъпките по-долу, за да създадете конзолно приложение.
Щракнете с десния бутон върху файла с решение на Visual Studio и изберете опцията Добавяне-> Нов проект
Стъпка 3) В тази стъпка
- Уверете се, че първо сте избрали опцията Visual C # Windows. След това изберете опцията за създаване на конзолно приложение.
- Дайте име на вашия проект, който в нашия случай е даден като "DemoApplication."
След като щракнете върху бутона OK в горния екран, ще можете да видите проекта в Solution Explorer в Visual Studio.
Стъпка 4) В тази стъпка вие задавате приложението DemoApplication Console като стартиращ проект. Това се прави, за да се гарантира, че това приложение се стартира първо, когато се изпълни целият проект на Visual Studio. Това приложение на конзолата от своя страна ще извика уеб услугата, която ще се стартира автоматично от Visual Studio.
За да завършите тази стъпка, щракнете с десния бутон на мишката върху проекта DemoApplication и изберете опцията „Задай като стартиращ проект“.
Стъпка 5) Следващата стъпка е да добавите референтната услуга на нашата "Guru99Webservice" към нашето конзолно приложение. Това се прави, за да може DemoApplication да препраща към уеб услугата и всички уеб методи в уеб услугата.
За да направите това, щракнете с десния бутон на мишката върху файла на проекта DemoApplication и изберете опцията от менюто Add-> Service Reference.
Стъпка 6) В тази стъпка ще предоставим различните стойности, необходими за добавяне на референтната ни услуга
- Първо трябва да изберем нашата опция за откриване. Тази опция автоматично ще вземе WSDL файла за нашата уеб услуга TutorialService.
- След това трябва да дадем име за референтната ни услуга. В нашия случай му даваме име Guru99Webservice.
- След това трябва да разширим опцията TutorialService.asmx, за да можем да видим метода „GetTutorialService“ от дясната страна. Тук TutorialService.asmx е името на нашия Visual Studio .Net файл, който съдържа кода за нашата уеб услуга.
- След това ще видим нашия уеб метод, който имахме в нашата уеб услуга, известен като "GetTutorialService"
Когато щракнем върху бутона „OK“, целият необходим код за достъп до тази уеб услуга ще бъде добавен към нашето приложение DemoApplication Console, както е показано по-долу.
Екранната снимка показва, че "Guru99Webservice" е успешно добавен към нашето конзолно приложение.
Стъпка 7) Следващата стъпка е да добавите кода към нашето конзолно приложение за достъп до уеб метода в нашата уеб услуга. Отворете кодовия файл Program.cs, който се предлага автоматично с конзолното приложение, и добавете кода по-долу
namespace DemoApplication{class Program{static void Main(string[ ] args){var client = new Guru99Webservice.Guru99WebserviceSoapClient();Console.WriteLine(client.GetTutorialService(l));Console.ReadKey();}}}
Обяснение на кода: -
- Първата част е да изберете файла Program.cs. Това е основният файл, който се създава от Visual Studio при създаване на конзолно приложение. Този файл се изпълнява при изпълнение на конзолното приложение (в нашия случай демо приложение).
- След това създаваме променлива, наречена "клиент", която ще бъде настроена на екземпляр от нашата справка за услугата, която е създадена в по-ранна стъпка. В нашия случай препратката към услугата е „Guru99Webservice.Guru99WebserviveSoapClient ()“
- След това извикваме нашия Webmethod 'GetTutorialService' в уеб услугата TutorialService. Не забравяйте, че нашият метод GetTutorialService 'приема цяло число параметър, така че ние просто предаваме цяло число параметър на уеб метода.
- Този последен ред е само за да гарантира, че екранът на конзолния журнал остава активен, за да можем да видим изхода. Тази команда просто ще изчака някои данни от потребителя.
Изход
Когато всички горни стъпки са изпълнени и се изпълни DemoApplication, ще се покаже изходът по-долу.
От изхода можем ясно да видим, че DemoApplication извиква нашата уеб услуга и че низът, върнат от уеб услугата, се показва в нашия дневник на конзолата.
Обобщение
- Пълната форма на WSDL е език за описание на уеб услуги
- WSDL документ е документ, който се използва за описание на уеб услуга. Това е ключово за всяко клиентско приложение, за да знае къде се намира уеб услугата. Той също така позволява на клиентското приложение да разбере методите, налични в уеб услугата.
- Файлът WSDL улеснява много уеб услугата да бъде внедрена на един език за програмиране и извикана от различен език за програмиране.
- Документът WSDL обикновено се състои от съобщение. За всеки уеб метод има 2 съобщения, едното е за входа, а другото за изхода. Заедно те образуват операция.
- Файловете с езици за описание на уеб услуги (означава WSDL) обикновено се създават в редактора, който се използва за съответния език за програмиране.
- Видяхме как можем да използваме уеб услуга в Visual Studio. Това може да се направи чрез създаване на друг проект, който е конзолно приложение. След това, като добавим референция за услуга, ние можем да осъществим достъп до уеб методите в нашата уеб услуга.