Comments
Плюсы
  • В 2 раза компактнее JSON;
  • В 3 раза компактнее XML;
  • Не читается по сети
  • Меньше требует CPU и памяти на десериализацию
  • Доступно для всех языков
  • “Умная” обратная совместимость

Минусы
  • Низкая скорость по http;
  • Нет гибкого описания OpenAPI.
У grpc-gateway менее быстрая скорость по http, в сравнении с другими серверами на GO. Потому что у нас сначала идет вызов по http, потом происходит маршелинг, потом вызов gRPC, и потом все тоже самое, но уже в обратную сторону
Возможно не тема для конкретно этой статьи, но: зачем этот overhead с лишним сервисом grpc-gateway, если клиенты REST API работают по HTTP 1 и по факту ресурсов будет потребляться больше? Так имеет делать смысл, если фронтенд тоже использует gRPC (есть «промышленные» примеры WebUI на нем?). А у нас вот просто «эффективные» project манагеры приняли такое решение (везде grpc-gateway) именно потому что swagger и еще пару grpc interceptor прикручены, для лога и авторизации запросов (можно ли текущему пользователю использовать тот или иной запрос или нет). А WebUI использует просто HTTP 1.
Например, в нашей компании мы при обновлении API на 2ю версию, сразу завезли туда gRPC и все SDK перевели, конечно же, на него. А REST остался, тк он более привычен простым пользователям, особенно не разработчикам.
А по-поводу того что у вас. Я согласен, что использовать этот подход, не имея ввиду дальнейшее внедрение и переключение всех сервисов на gRPC, это не самое разумное использование ресурсов системы.
Если нет возможности аргументировать это Вашим менеджерам, я бы тогда все же предложил посмотреть в сторону того, как тогда использовать этот подход на все 100%.
Например, в нашей компании мы при обновлении API на 2ю версию, сразу завезли туда gRPC

Было бы неплохо это сразу в статье отразить. А то у меня впечатление, что наши «эффективные» project манагеры просто зацепились за фразу, что gRPC — это круто, и пошло-поехало…
А кто у Вас основные потребители API? Я имею ввиду browser client или приложение какое?

У нас блокчейн, так что с ним взаимодействуют сторонние проекты которые вокруг него. Ну и наши собственные приложения, кошельки и сервисы.

Only those users with full accounts are able to leave comments. Log in, please.