Что такое принципы REST?

Что это такое за REST? Является ли им GraphQL или gRPC?

Принципы REST описывают стиль разработки API для взаимодействия в распределённых системах.

Чтобы это были клиент-серверные одноразовые запросы и ответы, которые можно легко проксировать через сколько угодно слоёв, кэшировать и рандомно балансировать на сколько угодно серверов. Для этого нужны адресация, отсутствие промежуточного состояния на сервере между запросами и явное добавление в запросы и ответы информации о кэшировании.

Чтобы все запросы и ответы содержали всю необходимую информацию для просмотра и дальнейших действий. Для этого можно прикладывать списки операций в виде гиперссылок. И при желании клиенту в ответе можно передавать апплеты и скрипты.

Принципы REST автор придумывал как раз для HTTP. Поэтому и работа браузера с сайтом по HTTP-протоколу работает как раз по этим принципам из коробки.

Но если взять GraphQL, где все запросы посылаются POST-ом на один адрес пачками по протоколу HTTP, то кэширование на промежуточных серверах уже сделать не получится.

Если взять gRPC, то там помимо одноразового запроса-ответа предполагается последующее фоновое общение по сокету. И такое общение через сокет уже не кэшируется и не балансируется.

Источник

Дмитрий Елисеев
elisdn.ru
Комментарии (0)
Зарегистрируйтесь или войдите чтобы оставить комментарий

Или войти через:

Yandex
MailRu
GitHub
Google