REST, gRPC, SOAP, GraphQL
Вопрос
Сравни REST, gRPC, SOAP и GraphQL. Когда что выберешь?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
REST: ресурсы, HTTP, JSON, OpenAPI, публичные API
gRPC: HTTP/2, protobuf, генерация клиентов, внутренние быстрые вызовы, стриминг
SOAP: XML, WSDL, WS-Security, банки и госсистемы
GraphQL: клиент выбирает поля, BFF для фронта, сложность кеширования и защиты
Выбор по потребителям, нагрузке, существующим системам и команде
Что могут спросить следом
- Почему gRPC быстрее REST?
- Какие проблемы безопасности у GraphQL?
Разбор
REST самый универсальный: ресурсы по URL, HTTP-методы, обычно JSON, контракт в OpenAPI, его понимает любой партнёр, поэтому для публичных API выбираю его. gRPC работает на HTTP/2 с бинарным protobuf, генерирует клиентов на разных языках и поддерживает стриминг, это хороший выбор для внутренних вызовов с высокой нагрузкой, но из браузера нужен gRPC-Web. SOAP тяжёлый, на XML с контрактом WSDL, зато с подписью сообщений по WS-Security, его выбираю, когда этого требует банк или госсистема. GraphQL полезен как слой для фронта с разными экранами, но надо ограничивать сложность запросов и решать N+1. Решение принимаю по потребителям, нагрузке и тому, что уже есть в ландшафте.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.