#grpcgateway — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #grpcgateway, aggregated by home.social.
-
Так у вас статика вольюмами маунтится! И другие весёлые приключения в поисках нового Gateway
Всем привет! Меня зовут Герман Кравец, я больше десяти лет в IT. В МойОфис работаю руководителем группы Календаря в отделе разработки
https://habr.com/ru/companies/ncloudtech/articles/965576/
#api_gateway #golang #grpc #grpcgateway #caddy #go #fiber #gin #mailion #мойофис
-
Часть вторая. Как я пытался засунуть gRPC в браузер — продолжение
Предыдущая часть Картина мира: почему браузер — главный блокер для «настоящего» gRPC Если коротко, gRPC живёт поверх HTTP/2 и активно полагается на стримы. А в браузере до сих пор нет низкоуровневого API, который позволил бы JavaScript управлять HTTP/2‑стримами на том уровне, который нужен gRPC. Даже unary‑вызов в gRPC — это частный случай стрима: открыли поток, отдали запрос, забрали ответ, закрылись. Пока браузеры не дадут этот «рычаг», все WEB‑решения — это компромиссы разной степени изящности. Чем это оборачивается на практике: Нативные bidi‑стримы из браузера недоступны Приходится конвертировать транспорт: HTTP/1.1 или WebSocket → что‑то «похоже на gRPC» → gRPC/HTTP2 на бэкенде Добавляются прокси, адаптеры и слой совместимости, где теряется часть достоинств «чистого» gRPC
https://habr.com/ru/articles/944894/
#go #grpc #grpcgateway #grpcstreaming #grpcсервисы #golang #protobuf #easyp #buf #rpc
-
Как я пытался засунуть gRPC в браузер — часть первая
Одна из самых основных проблем в работе с gRPC - необходимость наружу вытаскивать отдельно REST API для web клиента, но, надо ли отдельно его писать, или можно как-то унифицировать и эту историю? И вот начал я копать эту тему, и чем глубже копал, тем больше удивлялся. Оказывается, за последние почти 10 лет было целых ТРИ ЧЕТЫРЕ серьезных попытки затащить gRPC в веб. И знаете что самое смешное? Самая первая попытка, сделанная в 2015 году японкой- одиночкой (в команде с коллегами), до сих пор остается самым адекватным решением. А Google со всеми своими миллиардами и армией разработчиков так и не смог ничего нормального придумать. Но обо всем по порядку. Ах, да, меня зовут Эдгар Сипки , я все также евангелист gRPC && OpenSource :) Кстати, мой канал , там я гораздо чаще пишу (а скоро еще и начну снимать очень много крутого контента про gRPC и Go), ну и конечно один из основателей инструмента EasyP Ссылка на полный доклад, если хочется посмотреть - YouTube
https://habr.com/ru/articles/941816/
#go #grpc #grpcgateway #grpcstreaming #grpcсервисы #golang #protobuf #easyp #buf #generator
-
Как, имея более 200 методов HTTP, смэтчить их с тем, в какие сервисы они ходят
Привет, Хабр! На связи команда Seller API, а именно её тимлид Саша Валов и старший разработчик Никита Денисенко. В этой статье мы разберём одну из проблем большого API и расскажем, как мы её решили. Вступление Seller API — это продукт, предоставляющий программный интерфейс для работы с маркетплейсом Ozon. Он позволяет системам продавца и Ozon обмениваться информацией. Seller API насчитывает более 200 методов. Эти методы удовлетворяют множество бизнес-потребностей и предоставляют доступ к широкому спектру сервисов Ozon. В основном методы API проксируют запросы к этим сервисам. Проблема Нашей команде необходимо оперативно давать ответы на вопросы а-ля «В какие сервисы мы, разработчики команды Seller API, ходим под капотом этой API-ручки?» или, наоборот, «В контексте каких API-ручек мы ходим в конкретный сервис или даже метод сервиса?». Эти вопросы с завидной регулярностью поступают от ребят из технической поддержки, которым необходимо расследовать неполадку, и ребят из продукта, которые систематизируют требования к новым функциональностям или к рефакторингу старых. Чтобы ответить на любой из этих вопросов, нам чаще всего приходится смотреть код. Дежурный разработчик сначала идёт в proto-файлы, описывающие контракт API (да, мы в Ozon описываем и внешние, и внутренние API с помощью proto-файлов). Погружаясь глубже вплоть до кода клиентов нижележащих сервисов, он находит нужные методы, в которые мы проксируем запросы. И, наоборот, из кода клиента необходимого сервиса, поднимаясь по слоям, разработчик понимает, где и как используется метод нижележащего сервиса.