Ответ вслух Middle gRPC, SOAP и другие протоколы спрашивают часто обновлено

REST, gRPC, SOAP, GraphQL

Вопрос

Сравни REST, gRPC, SOAP и GraphQL. Когда что выберешь?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

REST самый универсальный: ресурсы по URL, HTTP-методы, обычно JSON, контракт в OpenAPI, его понимает любой партнёр, поэтому для публичных API выбираю его. gRPC работает на HTTP/2 с бинарным protobuf, генерирует клиентов на разных языках и поддерживает стриминг, это хороший выбор для внутренних вызовов с высокой…

Что должно прозвучать в ответе

  • 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 ошибок.