SOAP vs REST

SOAP — более старый, строгий протокол обмена сообщениями, всегда в формате XML с фиксированной структурой конверта. REST — более гибкий стиль, обычно использует JSON и обычные HTTP-методы.

<!-- SOAP-запрос — всегда XML "конверт" -->
<soap:Envelope>
  <soap:Body>
    <GetUserRequest>
      <UserId>5</UserId>
    </GetUserRequest>
  </soap:Body>
</soap:Envelope>
// REST-запрос — обычно JSON, проще
GET /api/users/5
Копнуть глубже

Сравнение по практическим параметрам:

SOAPREST
Форматтолько XMLобычно JSON, может быть и XML
Контрактстрогий, описан в WSDL-файлеменее формальный, документация (OpenAPI/Swagger)
Транспортобычно HTTP, но не обязательнострого HTTP
Встроенная безопасностьWS-Security (расширенный стандарт)через HTTPS + токены
Размер сообщенийбольше (XML многословнее)компактнее
Где встречается сегоднябанковские, государственные интеграции (легаси)подавляющее большинство современных API

WSDL (Web Services Description Language) — формальный XML-документ, описывающий все доступные операции SOAP-сервиса, типы данных, структуру запросов/ответов — клиент может автоматически сгенерировать код для работы с сервисом прямо из WSDL.

Почему REST вытеснил SOAP в большинстве новых проектов. REST проще читать и отлаживать (обычный JSON вместо громоздкого XML-конверта), легче для мобильных клиентов (меньше трафика), не требует специальных библиотек для работы — обычный HTTP-клиент справляется. SOAP остаётся там, где критична строгая типизация контракта и встроенные стандарты безопасности/транзакций (часто в финансовых и государственных системах, интегрирующихся с legacy-инфраструктурой).

🎤 Закрыл тему, если можешь объяснить:
• основные различия SOAP и REST по формату и строгости контракта;
• что такое WSDL и почему REST вытеснил SOAP в большинстве новых проектов (если дошёл до 2-го слоя).