🔄 REST vs gRPC: битва API-гигантов
Кратко: REST и gRPC — два главных способа подружить программы. REST — это классика: человекочитаемые JSON'ы по HTTP, всё просто и понятно. gRPC — хайп от Google: бинарные протоколы, бешеная скорость, строгие контракты. REST любят за простоту, gRPC — за производительность.
▫️REST (старый друг) · 2000 г. — Рой Филдинг придумывает в диссертации · Суть: ресурсы (users, orders) и методы (GET, POST) над HTTP · Формат: JSON (читаемо, можно в браузер) · Плюсы: простота, понятность, документируемость · Минусы: много данных, медленный парсинг, нет строгого контракта · Где живёт: публичные API (Twitter, GitHub), веб-приложения
▫️gRPC (шустрый выскочка) · 2015 г. — Google открывает внутреннюю технологию · Суть: вызываешь метод на сервере как локальную функцию · Формат: Protobuf (бинарный, нечитаемый, но очень быстрый) · Транспорт: HTTP/2 (мультиплексирование, стриминг) · Плюсы: скорость, компактность, стриминг, кодогенерация · Минусы: сложность, не в браузере, нечитаемо · Где живёт: микросервисы, мобилки, IoT, стриминг
▫️Сравнение (кто круче): · Формат: REST — JSON, gRPC — бинарный Protobuf · Скорость: REST ниже, gRPC выше (до 7-10 раз) · Размер: REST больше, gRPC меньше (до 30% от JSON) · Читаемость: REST — человек, gRPC — только машина · Стриминг: REST — WebSocket, gRPC — из коробки · Контракт: REST — OpenAPI (отдельно), gRPC — .proto (встроенный)
▫️Как выбирать (2026): · REST — если API публичное, клиенты — браузеры, важна простота · gRPC — если сервисы внутри кластера, нужна скорость, стриминг, много данных · Золотой стандарт — REST снаружи (для клиентов), gRPC внутри (между сервисами)
▫️Культурный феномен: · REST — "английский" интернета (все понимают) · gRPC — эсперанто для микросервисов (строго и быстро) · Холивар: "REST устарел" против "gRPC сложный" · Мем: "Ты ещё JSON таскаешь? Ну, удачи"
▫️Современное положение: · REST живёт в 80% публичных API · gRPC — стандарт для микросервисов в Kubernetes · GraphQL подбирает хлеб у REST для сложных запросов · Тренд: никто не умирает, все живут вместе