October 22, 2018

Архитектура REST

REST (Representational state transfer) - это архитектурный стиль взаимодействия компонентов распределенной системы. Как правило, используется для построения веб-служб.

RESTful - термин, применяемый к веб-службам, построенным с учетом REST ограничений.

Требования к REST

  1. Клиент-сервер. Система должна быть разделена на клиентов и серверы.
  2. Отсутствие состояния. Сервер не должен хранить информацию о клиентах. В запросе должна содержаться вся необходимая информация для его обработки.
  3. Кэширование. Ответы сервера должны иметь обозначение как кэшируемые или некэшируемые с целью предотвращения получения клиентами устаревших или неверных данных.
  4. Единообразие интерфейсов. Позволяют каждому из сервисов развиваться независимо.
  5. Слои. Допускается разделить систему на иерархию слоев, но с условием, что каждый компонент может видеть компоненты только непосредственно следующего слоя.
  6. Код по требованию. Допускается загрузка и выполнение кода или программы на стороне клиента.

Преимущества REST

  • надёжность (за счёт отсутствия необходимости сохранять информацию о состоянии клиента, которая может быть утеряна)
  • производительность (за счёт использования кэша)
  • масштабируемость
  • простота интерфейсов
  • портативность компонентов
  • легкость внесения изменений