Являются ли фреймворки RPC, такие как Apache Thrift или GRPC, или любая другая фреймворк RPC RESTful?
Взяты отдельно: нет.
Окончательная ссылка на REST: Архитектурные стили и проектирование сетевых программных архитектур .Рой Филдинг описывает архитектурные ограничения, которые были разработаны при работе над веб-стандартами ( RFC 1945 , RFC 2068 , RFC 2616 , позже RFC 7230 ).
REST предназначен для долговечных сетевых приложений, охватывающих несколько организаций ( Fielding, 2008 )
"The«Всемирная паутина» - это пример приложения, созданного с использованием архитектурного стиля REST.
Методы HTTP и коды состояния сами по себе не являются ограничением REST.В архитектуре REST клиент и сервер обмениваются семантикой, обмениваясь сообщениями, но они не обязательно должны быть HTTP-сообщениями .Вы могли бы заменить HTTP другим протоколом, который соответствует архитектурному стилю и все еще имеет архитектуру REST.
Некоторые ресурсы, подобные этим, предлагают использовать / реализовывать эти инфраструктуры как RESTful.
Люди, которые понимают, что REST означает HTTP + JSON, придут к выводам, которые несовместимы с веб-архитектурой и тезисом Филдинга.
Вкратце - HTML делает лот тяжелой работы в создании успешного архитектурного стиля сети.JSON, напротив, не включает семантику «ссылки» или «формы», которая может использоваться для сообщения клиенту, какие переходы возможны.Вам нужна другая семантика поверх JSON, чтобы сервер мог сообщить клиенту, какие переходы приложений возможны; Web Linking или гипермедиа-ориентированный диалект JSON.
Насколько можно судить, вы могли бы использовать Thrift для создания приложения, которое удовлетворяет архитектурным ограничениям REST.Но я предполагаю, что это не будет особенно приятным опытом: Thrift был разработан, потому что Facebook нужна была система со свойствами, которые не удовлетворяли бы веб-архитектуре.
REST отлично подходит для Интернета.Однако стек, состоящий из REST, HTTP и JSON, не оптимален для высокой производительности, необходимой для внутренней передачи данных.Действительно, сериализация и десериализация этих протоколов и форматов может нанести ущерб общей скорости.- Leo Schoukroun
URI, HTTP, HTML легко переназначаются, но такая гибкость сопряжена с издержками.В тех случаях, когда такая гибкость не дает ценности (например, потому что вы - единая организация, которая контролирует развертывание клиента и сервера), более эффективные форматы и протоколы становятся более интересными.
Это похоже насделанный нами компромисс между HTML и JSON - JSON не является полезным гипермедиа представлением;но он вполне подходит для потребления кодом по требованию, который был загружен нашим представлением hypermedia .
Лошади для курсов.