Короткий ответ
REST моделирует взаимодействие как операции над ресурсами (GET/POST/PUT/DELETE на URL), а RPC моделирует взаимодействие как вызов удалённой функции/метода с произвольным именем и параметрами (например через gRPC).
Как это работает подробнее
REST опирается на единообразную семантику HTTP-методов и статус-кодов вокруг ресурсов; RPC описывает набор методов-процедур (CreateOrder, CancelOrder), часто через бинарный протокол (protobuf в gRPC).
Что использовать на практике
- Практика. REST удобен для публичных/веб-API и браузерных клиентов, легко кешируется по URL; gRPC выгоден для внутреннего взаимодействия сервисов с высокими требованиями к производительности и строгой типизации.
Подводные камни
- Риск. Пытаться «причесать» под REST операции, которые по сути — команды, вместо явного RPC-подобного эндпоинта-действия; выбирать gRPC только из-за «модности» без реальной потребности.