Что это такое за REST? Является ли им GraphQL или gRPC?
Принципы REST описывают стиль разработки API для взаимодействия в распределённых системах.
Чтобы это были клиент-серверные одноразовые запросы и ответы, которые можно легко проксировать через сколько угодно слоёв, кэшировать и рандомно балансировать на сколько угодно серверов. Для этого нужны адресация, отсутствие промежуточного состояния на сервере между запросами и явное добавление в запросы и ответы информации о кэшировании.
Чтобы все запросы и ответы содержали всю необходимую информацию для просмотра и дальнейших действий. Для этого можно прикладывать списки операций в виде гиперссылок. И при желании клиенту в ответе можно передавать апплеты и скрипты.
Принципы REST автор придумывал как раз для HTTP. Поэтому и работа браузера с сайтом по HTTP-протоколу работает как раз по этим принципам из коробки.
Но если взять GraphQL, где все запросы посылаются POST-ом на один адрес пачками по протоколу HTTP, то кэширование на промежуточных серверах уже сделать не получится.
Если взять gRPC, то там помимо одноразового запроса-ответа предполагается последующее фоновое общение по сокету. И такое общение через сокет уже не кэшируется и не балансируется.
Или войти через: