Учебное пособие по WSDL: язык описания веб-служб с примерами

Содержание:

Anonim

Что такое 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

Файл WSDL содержит следующие основные части

  1. <Типы> тег используется для определения всех сложных типов данных, которые будут использоваться в сообщении , обмениваемые между клиентским приложением и веб - службы. Это важный аспект клиентского приложения, потому что, если веб-служба работает со сложным типом данных, клиентское приложение должно знать, как обрабатывать этот сложный тип данных. Типы данных, такие как числа с плавающей запятой, числа и строки, являются простыми типами данных, но могут быть и структурированные типы данных, которые могут быть предоставлены веб-службой.

    Например, может существовать тип данных с именем EmployeeDataType, который может иметь 2 элемента с именем «EmployeeName» в виде строки типа и «EmployeeID» в виде числа или целого числа. Вместе они образуют структуру данных, которая затем становится сложным типом данных.

  2. <Сообщения> тег используется для определения сообщения , которое обменивается между клиентским приложением и веб - сервера. Эти сообщения объясняют операции ввода и вывода, которые могут выполняться веб-службой. Примером сообщения может быть сообщение, которое принимает EmployeeID сотрудника, а выходное сообщение может быть именем сотрудника на основе предоставленного EmpoyeeID.

  3. тег используются для инкапсуляции каждого входного и выходного сообщения в одну логическую операцию. Таким образом, может существовать операция под названием «GetEmployee», которая объединяет входное сообщение о принятии EmployeeID из клиентского приложения и последующей отправке EmployeeName в качестве выходного сообщения.

  4. <Связывание> тег используется для привязки операции к конкретному типу порта. Это сделано для того, чтобы, когда клиентское приложение вызывает соответствующий тип порта, оно сможет получить доступ к операциям, привязанным к этому типу порта. Типы портов похожи на интерфейсы. Поэтому, если клиентскому приложению необходимо использовать веб-службу, им необходимо использовать информацию привязки, чтобы гарантировать, что они могут подключиться к интерфейсу, предоставляемому этой веб-службой.

  5. <Сервис> тег является имя , данное самой веб - службы. Первоначально, когда клиентское приложение вызывает веб-службу, оно будет делать это, вызывая имя веб-службы. Например, веб-сервис может быть расположен по адресу 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 типа сообщений,

  • Один предназначен для ввода веб-службы, а другой - для вывода веб-службы.
  • Входные данные используются для описания параметров, которые принимает веб-сервис. Это важный аспект клиентского приложения, так как он знает значения, которые должны быть отправлены в качестве параметров в веб-службу.
  • Другой тип сообщения - это выходное сообщение, которое сообщает, какие результаты предоставляет веб-служба.

Каждое сообщение, в свою очередь, будет иметь элемент , который используется для описания параметра, используемого входным и выходным сообщением.

Ниже приведен простой пример того, как выглядит сообщение для веб-службы. Функциональность веб-службы заключается в предоставлении имени «Учебника» после того, как «Идентификатор учебного пособия» передается в качестве параметра в веб-службу.

  1. Как мы видим, у веб-службы есть 2 сообщения, одно для ввода, а другое для вывода.
  2. Входное сообщение известно как TutorialNameRequest, у которого есть один параметр, называемый TutorialID. Этот параметр имеет номер типа, который определяется типом xsd: number.
  3. Выходное сообщение известно как TutorialNameResponse, у которого есть один параметр с именем TutorialName. Этот параметр имеет тип строки, который определяется типом xsd: string.

Привязка типа порта

Порты используются в WSDL для определения одной полной операции, предлагаемой веб-службой.

В предыдущем разделе мы увидели, что наша веб-служба предоставила 2 сообщения: одно для ввода с именем «TutorialNameRequest», а другое для вывода с именем «TutorialNameResponse». Вместе форма сообщения ввода и вывода называется одной законченной операцией.

WSDL предоставляет элемент под названием , который используется для определения операций, предоставляемых веб-службой.

Итак, в нашем примере выше мы можем отметить следующее:

  1. Имя типа порта, который инкапсулирует операцию, дается как "Tutorial_PortType".
  2. Сама операция получила название «Учебник». Таким образом, наша операция в основном предоставляет TutorialName, если TutorialID указан как входной параметр.
  3. Далее идут наши 2 сообщения, одно для ввода, а другое для вывода, которые формируют нашу операцию.

В дополнение к элементу существует также элемент , который используется для определения способа передачи сообщений.

  1. В приведенном выше примере показано, что привязка состоит из имени привязки, которое в нашем случае дается как «TutorialSoapBinding». Проще говоря, привязка - это информация, которую клиентское приложение использует для фактической привязки к веб-службе. Как только он фактически привязан к веб-службе, он получает возможность вызывать различные операции, предоставляемые веб-службой.
  2. Транспортный уровень задается как 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;}}}

Пояснение к коду:

  1. Здесь мы создаем WebMethod под названием «Guru99WebService». В этот веб-метод мы включаем целочисленный параметр, который необходимо передавать при каждом вызове этого веб-метода.
  2. Затем мы определяем переменную с именем «TutorialName», которая будет содержать строковое значение «Web Services». Это значение, которое будет возвращено при вызове веб-службы.

Шаг 2) После того, как мы определили файл веб-служб, следующим шагом будет создание клиентского проекта, который будет использовать эту веб-службу.

Давайте создадим простое консольное приложение, которое будет вызывать эту веб-службу, вызывать «Guru99WebService» и затем отображать вывод веб-метода на экране журнала консоли. Выполните следующие шаги, чтобы создать консольное приложение.

Щелкните правой кнопкой мыши файл решения Visual Studio и выберите опцию Добавить-> Новый проект.

Шаг 3) На этом шаге

  1. Убедитесь, что вы сначала выбрали опцию Visual C # Windows. Затем выберите вариант создания консольного приложения.
  2. Дайте название вашему проекту, которое в нашем случае было «DemoApplication».

После того, как вы нажмете кнопку ОК на приведенном выше экране, вы сможете увидеть проект в обозревателе решений в Visual Studio.

Шаг 4) На этом шаге вы устанавливаете приложение DemoApplication Console в качестве запускаемого проекта. Это сделано для того, чтобы это приложение запускалось первым при запуске всего проекта Visual Studio. Это консольное приложение, в свою очередь, вызовет веб-службу, которая будет автоматически запущена Visual Studio.

Чтобы завершить этот шаг, щелкните правой кнопкой мыши проект DemoApplication и выберите параметр «Установить как запускаемый проект».

Шаг 5) Следующий шаг - добавить ссылку на сервис нашего «Guru99Webservice» в наше консольное приложение. Это сделано для того, чтобы DemoApplication могла ссылаться на веб-службу и все веб-методы в веб-службе.

Для этого щелкните правой кнопкой мыши файл проекта DemoApplication и выберите пункт меню «Добавить» -> «Ссылка на службу».

Шаг 6) На этом шаге мы предоставим различные значения, необходимые для добавления ссылки на нашу службу.

  1. Во-первых, нам нужно выбрать наш вариант обнаружения. Эта опция автоматически подберет файл WSDL для нашей веб-службы TutorialService.
  2. Затем мы должны дать название нашей ссылке на сервис. В нашем случае мы даем ему имя Guru99Webservice.
  3. Затем нам нужно расширить параметр TutorialService.asmx, чтобы мы могли видеть метод GetTutorialService с правой стороны. Здесь TutorialService.asmx - это имя нашего .Net-файла Visual Studio, который содержит код для нашей веб-службы.
  4. Затем мы увидим наш веб-метод, который у нас был в нашей веб-службе, известный как «GetTutorialService».

Когда мы нажимаем кнопку «ОК», весь код, необходимый для доступа к этой веб-службе, будет добавлен в наше приложение 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();}}}

Пояснение к коду: -

  1. Первая часть - выбрать файл Program.cs. Это основной файл, который создается Visual Studio при создании консольного приложения. Этот файл запускается при запуске консольного приложения (в нашем случае демонстрационного приложения).
  2. Затем мы создаем переменную с именем «client», которая будет установлена ​​на экземпляр нашей ссылки на Службу, которая была создана на предыдущем шаге. В нашем случае ссылка на сервис - Guru99Webservice.Guru99WebserviveSoapClient ().
  3. Затем мы вызываем наш веб-метод GetTutorialService в веб-службе TutorialService. Помните, что наш метод GetTutorialService принимает целочисленный параметр, поэтому мы просто передаем целочисленный параметр веб-методу.
  4. Эта последняя строка предназначена только для того, чтобы экран журнала консоли оставался активным, чтобы мы могли просматривать вывод. Эта команда будет просто ждать ввода от пользователя.

Выход

Когда будут выполнены все вышеперечисленные шаги и запущено DemoApplication, отобразится вывод, приведенный ниже.

Из выходных данных мы ясно видим, что DemoApplication вызывает нашу веб-службу и что строка, возвращаемая веб-службой, отображается в нашем журнале консоли.

Резюме

  • Полная форма WSDL - это язык описания веб-сервисов
  • Документ WSDL - это документ, который используется для описания веб-службы. Это ключ к тому, чтобы любое клиентское приложение узнало, где находится веб-служба. Это также позволяет клиентскому приложению понимать методы, доступные в веб-службе.
  • Файл WSDL позволяет легко реализовать веб-службу на одном языке программирования и вызвать ее из другого языка программирования.
  • Документ WSDL обычно состоит из сообщения. Для каждого веб-метода есть 2 сообщения, одно для ввода, а другое для вывода. Вместе они образуют операцию.
  • Файлы на языке описания веб-служб (WSDL) обычно создаются в редакторе, который используется для соответствующего языка программирования.
  • Мы видели, как мы можем использовать веб-службу в Visual Studio. Это можно сделать, создав другой проект, который является консольным приложением. Затем, добавив ссылку на службу, мы сможем получить доступ к веб-методам в нашей веб-службе.