К содержимому

Разработка gRPC API и протоколов обмена на Go

Быстрый и строгий обмен между сервисами: контракты на Protocol Buffers, бинарная передача по HTTP/2 и кодогенерация клиентов.

gRPCProtocol BuffersБинарный протоколHTTP/2Контракты
Стоимость от 120 000 ₽
  • Контракты

    Методы и сообщения описаны в .proto-файлах.

  • Бинарная передача

    Protobuf компактнее и быстрее JSON.

  • Кодогенерация

    Клиенты для Go, Python, Java и других языков.

  • Стриминг

    Потоковая передача данных в обе стороны.

Тарифы

Сколько стоит

gRPC-сервис

от 120 000 ₽
  • .proto-контракт
  • Сервер на Go
  • Тесты
Обсудить

gRPC-шлюз для системы

от 220 000 ₽
  • Шлюз gRPC ↔ REST
  • Авторизация и лимиты
  • Мониторинг
Обсудить

Межсервисный обмен под ключ

от 400 000 ₽
  • Контракты для всех сервисов
  • Версионирование
  • Стриминг
Обсудить
Как работаем

Этапы работы

  1. 01Бриф и аудит

    Разбираем задачу, конкурентов и текущий сайт, собираем структуру и семантику. Бесплатно.

  2. 02Прототип и дизайн

    Проектируем страницы под ключевые запросы и путь клиента до заявки, согласуем дизайн.

  3. 03Разработка и наполнение

    Вёрстка, CMS, интеграции с CRM и 1С, тексты, метатеги и микроразметка.

  4. 04Запуск и продвижение

    Переносим на хостинг, подключаем Метрику и цели, сдаём сайт и запускаем SEO и рекламу.

Когда JSON становится узким местом

В системе из десятков сервисов каждый вызов по REST тратит время на разбор JSON, а несовпадение форматов обнаруживается уже в продакшене. gRPC решает обе проблемы: контракт описан в Protocol Buffers, данные передаются бинарно по HTTP/2.

gRPC на Go: .proto-контракт, кодогенерация клиента и сервера, бинарная передача по HTTP/2
.proto-контракт → кодогенерация → HTTP/2 и Protobuf → сервисы

Что разрабатываем

Контракты

Описываем сервисы и сообщения в .proto-файлах, договариваемся о правилах версионирования.

Сервисы и шлюзы на Go

Серверы gRPC на Go, шлюзы для внешних клиентов (REST или gRPC-Web), авторизация и лимиты.

Стриминг

Потоковая передача данных — котировки, события, телеметрия — в одну или обе стороны.

Стриминг
REST + JSONgRPC + Protobuf
ФорматТекстБинарный
КонтрактOpenAPI, по договорённостиСтрогий, .proto
СтримингОграниченноВ обе стороны

API для внешних клиентов на Go — на странице API на Go.

Смотрите также: микросервисы на Go, highload на Go, миграция на Go. Все услуги — разработка на Go.

FAQ

Частые вопросы

Чем gRPC лучше REST для обмена между сервисами?

Строгие контракты, бинарная передача и HTTP/2: меньше трафика, быстрее вызовы и ошибки несовместимости ловятся при сборке.

Можно ли вызывать gRPC из браузера?

Напрямую — ограниченно. Для сайта и мобильных клиентов ставим шлюз, который отдаёт REST или gRPC-Web, а внутри сервисы общаются по gRPC.

Что такое Protocol Buffers?

Формат описания и бинарной передачи данных от Google: схема сообщений в .proto-файле, из которой генерируется код.

Как менять контракт, не ломая клиентов?

Добавляем новые поля, не меняя номера существующих, и выпускаем новые версии сервисов по правилам совместимости Protobuf.

Для каких проектов это нужно?

Где важна скорость межсервисного обмена: финтех, геймдев, ритейл с большим числом сервисов.

Обсудим задачу

Расскажите, что нужно сделать

Оставьте контакты или напишите в мессенджер: разберём задачу и предложим решение.

Телефон для связи8 (967) 858-85-55
Как с вами связаться
или напишите нам Max
Заявка принята. Мы свяжемся с вами.