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

Что такое WSDL?

2.3 Middle🔥 101 комментариев
#Тестирование API

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

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

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

WSDL (Web Services Description Language)

Определение

WSDL — XML-based язык описания SOAP веб-сервисов. Это контракт между клиентом и сервером, который определяет, какие методы доступны и какие параметры они принимают.

Аналогия: если REST API это просто список endpoints, WSDL это полная документация с типами данных, параметрами и возвращаемыми значениями.

Основные компоненты WSDL

1. Types (Типы данных) Описание всех типов данных, используемых в сервисе (через XML Schema).

2. Messages (Сообщения) Описание входных и выходных сообщений (какие параметры нужны).

3. Port Types (Порт Типы) Описание операций (методов) — какие messages они используют.

4. Binding (Привязка) Описание, как эти операции передаются по сети (обычно SOAP).

5. Service (Сервис) Описание конечного адреса (URL) сервиса.

Структура WSDL файла

WSDL определяет:

  • Какие операции доступны в сервисе
  • Какие параметры нужны каждой операции
  • Какой формат возврата данных
  • Где находится сервис (URL)
  • Какие типы ошибок могут быть

Пример: Banking Service имеет операцию getBalance, которая принимает accountId и возвращает Account object с balance.

Как я использую WSDL для тестирования

Шаг 1: Загружаю WSDL в SoapUI

Шаг 2: Автоматическое создание request templates SoapUI знает:

  • Какой метод вызвать
  • Какие параметры нужны
  • Какой формат данных

Шаг 3: Валидация

  • SoapUI проверяет, что response соответствует WSDL
  • Если response не соответствует schema → error

WSDL vs REST/Swagger

АспектWSDLSwagger/OpenAPI
ЯзыкXMLJSON/YAML
ИспользуетSOAPREST
СложностьВысокаяПростая
ИнструментыSoapUISwagger UI
СовременностьLegacyModern

Мой опыт с WSDL

  • Тестировал 2 SOAP сервиса с WSDL
  • Использовал SoapUI для генерации тестов
  • Главный advantage: не нужно вручную писать XML
  • SoapUI автоматически генерирует структуру

Когда WSDL все ещё используется

  1. Enterprise системы: банки, страховые компании
  2. Legacy интеграции: старые системы
  3. Стандартизованные API: где нужна formal contract
  4. Government: госучреждения часто требуют WSDL

Когда WSDL не нужен

  • REST API (используется Swagger/OpenAPI)
  • Современные стартапы
  • GraphQL

Итоговый вывод

WSDL — это формальный способ описания SOAP сервисов. Для QA: очень полезно, так как автоматизирует тестирование. SoapUI может полностью автоматически сгенерировать тесты на основе WSDL.