junior
В чём отличия REST от SOAP?
REST — архитектурный стиль, работающий преимущественно через HTTP с любым форматом данных. SOAP — строгий протокол, использующий исключительно XML и поддерживающий множество транспортов.
| Характеристика | REST | SOAP |
|---|---|---|
| Тип | Архитектурный стиль | Протокол |
| Формат данных | JSON, XML, HTML, текст и др. | Только XML |
| Транспорт | Преимущественно HTTP | HTTP, SMTP, TCP, JMS и др. |
| Стандарт описания | OpenAPI/Swagger (опционально) | WSDL (обязательно) |
| Состояние | Stateless | Может быть stateful |
| Кэширование | Встроенная поддержка HTTP-кэширования | Нет нативной поддержки |
| Производительность | Выше (меньше overhead) | Ниже (XML-парсинг, SOAP-конверт) |
| Безопасность | HTTPS, OAuth, JWT | WS-Security (более мощная) |
| Транзакции | Нет встроенной поддержки | WS-AtomicTransaction |
| Надёжность | Нет встроенной поддержки | WS-ReliableMessaging |
| Стиль вызовов | Ориентирован на ресурсы | Ориентирован на операции (RPC) |
Когда использовать REST
- Публичные API (простота интеграции).
- Мобильные приложения (экономия трафика).
- Микросервисные архитектуры.
- Когда важна скорость разработки и простота.
Когда использовать SOAP
- Корпоративные системы с формальными контрактами.
- Когда нужна строгая типизация.
- Когда нужны продвинутые стандарты безопасности (WS-Security).
- Когда нужны распределённые транзакции (WS-AtomicTransaction).
- Финансовые и банковские системы.
На собеседовании: достаточно назвать 5-6 ключевых различий из таблицы и привести примеры, когда подходит REST, а когда SOAP. Частая ошибка — говорить, что SOAP устарел. SOAP по-прежнему широко используется в банковских и корпоративных системах.