Ответ
Для поддержки кода удобнее gRPC на HTTP/2.0 благодаря:
- Бинарному протоколу (меньший размер сообщений, быстрая сериализация).
- Мультиплексированию (один TCP-коннект для множества параллельных запросов).
- Строгой типизации (
.proto-файлы как контракты, автоматическая генерация кода). - Поддержке потоков (server-side, client-side, двунаправленные стримы).
REST на HTTP/1.1 проще для отладки (JSON, curl), но уступает в производительности и строгости API.
Пример gRPC сервиса:
service UserService {
rpc GetUser (UserRequest) returns (UserResponse);
}
message UserRequest {
int32 id = 1;
}
message UserResponse {
string name = 1;
string email = 2;
}
Для микросервисов и высоконагруженных систем gRPC предпочтительнее.