gRPC
Особенности
Помимо batch-запросов (это одиночные запросы, так сделано в JSON RPC), поддерживает стриминговые запросы (канал не закрывается сетевой, запросы посылаются)
Поддержка метаданных, таймаутов и отмены запросов на уровне протокола (в HTTP нам самим приходится придумать всякие Request ID, политики ретраев и тп). А тут передается специальным заголовком информация
Для описания формата сообщений используется IDL. То есть мы можем описать наши сообщения как нам удобно (например, через json или proto).
Кодогенерация
Пусть есть куча протофайлов с описанием gRPC-сервисов
Настраиваем среду (python)
Генерируем python-код (pb2 и grpc код)
Запускаем код
gRPC клиенты
Достаточно сложно тестировать gRPC API, не имея исходных proto-файлов.
На сколько этот gRPC клиент универсален? https://github.com/ktr0731/evans
grpc_cli — аналог curl для gRPC-сервисов
Есть интерактивный клиент cli evans
Аналог Postman/Insomnia — BloomRPC (но вроде Postman уже умеет в gRPC).
grpcdump — для отлова и декодирования gRPC запросов:
Last updated