Ответ
WSDL (Web Services Description Language) — это XML-документ, который формально описывает интерфейс веб-сервиса на основе SOAP (Simple Object Access Protocol). Он действует как контракт между сервером и клиентом.
Что определяет WSDL-файл:
- Типы данных (
<types>): Использует XML Schema (XSD) для определения сложных структур данных. - Сообщения (
<message>): Описывает формат входящих и исходящих сообщений. - Операции (
<portType>): Перечисляет доступные методы (например,getUser,createOrder). - Привязка (
<binding>): Указывает протокол (SOAP) и стиль обмена (RPC или document). - Сервис (
<service>): Содержит URL-адреса конечных точек (endpoints) для доступа к сервису.
Пример фрагмента WSDL:
<definitions>
<message name="getUserRequest">
<part name="userId" type="xsd:int"/>
</message>
<portType name="UserServicePortType">
<operation name="getUser">
<input message="tns:getUserRequest"/>
<output message="tns:getUserResponse"/>
</operation>
</portType>
<binding name="UserServiceBinding" type="tns:UserServicePortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
</binding>
<service name="UserService">
<port name="UserServicePort" binding="tns:UserServiceBinding">
<soap:address location="http://api.example.com/UserService"/>
</port>
</service>
</definitions>
Основное применение:
- Генерация клиентского кода: Инструменты вроде
wsimport(Java) илиwsdl.exe(.NET) читают WSDL и автоматически создают классы-заглушки для вызова сервиса. - Документирование: Служит машинно-читаемой документацией API.
- Валидация: Позволяет проверять соответствие SOAP-сообщений контракту.
Важно: WSDL специфичен для SOAP-сервисов. Современные RESTful API обычно описываются с помощью OpenAPI (Swagger).