В чем разница между REST, SOAP и GraphQL?
DOM и браузер
REST, SOAP и GraphQL — три подхода к построению API. REST — ресурсы и HTTP-методы, SOAP — строгий XML-протокол, GraphQL — гибкие запросы по схеме.
REST
- Архитектурный стиль: ресурсы по URL, действия — HTTP-методами (GET/POST/...).
- Формат обычно JSON, stateless, кешируется по URL.
- Плюсы: простота, повсеместность, кеширование.
- Минусы: over/under-fetching, много эндпоинтов.
SOAP
- Строгий протокол на XML с описанием контракта (WSDL).
- Работает поверх разных транспортов, встроенные стандарты безопасности (WS-Security), транзакции.
- Плюсы: строгий контракт, надёжность, корпоративные стандарты.
- Минусы: многословный XML, тяжеловесность, сложность.
- Применение: банки, энтерпрайз, legacy.
GraphQL
- Язык запросов: клиент запрашивает точно нужные поля одним запросом по строгой схеме.
- Один эндпоинт (обычно POST).
- Плюсы: нет over/under-fetching, типизация, гибкость.
- Минусы: сложность сервера, кеширование, риск тяжёлых запросов.
Как выбирать
- Простой публичный CRUD, кеширование → REST.
- Энтерпрайз, строгие контракты, безопасность → SOAP.
- Сложные связанные данные, много клиентов с разными нуждами → GraphQL.
Коротко для собеседования
REST — ресурсы + HTTP-методы, JSON, простой и кешируемый, но с over/under-fetching. SOAP — строгий XML-протокол с WSDL и WS-Security, для энтерпрайза, но тяжеловесный. GraphQL — гибкая выборка по схеме одним запросом ценой серверной сложности.