← Назад к вопросам

Что такое WSDL?

2.2 Middle🔥 131 комментариев
#Интеграции и API

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI28 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

WSDL — Web Services Description Language

WSDL (язык описания веб-сервисов) — это XML-стандарт для описания функциональности веб-сервисов на базе протокола SOAP. Это машиночитаемый формат, который определяет, как клиент может взаимодействовать с сервисом.

Назначение WSDL

WSDL служит контрактом между клиентом и сервером. Он описывает:

  • Доступные операции — какие методы может вызвать клиент
  • Структура данных — типы параметров и возвращаемых значений (используется XML Schema)
  • Точки подключения — адреса сервиса для различных привязок
  • Протоколы взаимодействия — SOAP, HTTP, SMTP и т.д.
  • Формат сообщений — как отправлять и получать данные

Типичный пример использования

Когда разработчик интегрирует SOAP-сервис, он берет WSDL файл и инструменты автоматически генерируют клиентский код (стабы), которые содержат типы данных и методы для взаимодействия с сервисом. Это упрощает разработку и уменьшает количество ошибок.

Структура WSDL документа

WSDL содержит следующие основные элементы:

  1. types — определение типов данных (XML Schema)
  2. message — определение сообщений (входных и выходных параметров)
  3. portType — описание операций (функций) сервиса
  4. binding — привязка операций к протоколу (SOAP, HTTP)
  5. service — конкретные точки доступа к сервису
  6. port — конкретный адрес и порт для подключения

Пример простого WSDL

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" name="Calculator">
  <types>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <xsd:element name="addRequest">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="a" type="xsd:int"/>
            <xsd:element name="b" type="xsd:int"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:schema>
  </types>
  
  <message name="AddRequest">
    <part name="body" element="addRequest"/>
  </message>
  
  <portType name="CalculatorPortType">
    <operation name="add">
      <input message="AddRequest"/>
      <output message="AddResponse"/>
    </operation>
  </portType>
  
  <binding name="CalculatorBinding" type="CalculatorPortType">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="add">
      <soap:operation soapAction="http://example.com/add"/>
    </operation>
  </binding>
  
  <service name="CalculatorService">
    <port name="CalculatorPort" binding="CalculatorBinding">
      <soap:address location="http://example.com/calculator"/>
    </port>
  </service>
</definitions>

WSDL в контексте Business Analyst

Для бизнес-аналитика WSDL важен тем, что:

  • Помогает понять структуру интеграций между системами
  • Позволяет документировать API и контракты
  • Упрощает общение с разработчиками о структуре данных
  • Важен при работе с legacy-системами и EDI интеграциями
  • Помогает оценить сложность интеграции

WSDL vs REST

WSDL часто сравнивают с REST:

  • WSDL/SOAP — строго типизированные, полные контракты, сложнее в использовании
  • REST — проще, легче, но требует большей документации

В современных проектах REST более популярен, но WSDL всё ещё используется в enterprise-решениях, банковском сегменте и legacy-системах.

Что такое WSDL? | PrepBro