Что такое REST

Очередная теоретическая статья, посвящённая графоманству.

REST — стиль построения распределённого приложения в сети, набор ограничений.

Веб-службы, построенные на REST называются RESTful.

Идея REST состоит в построении взаимодействия, основанного на протоколе HTTP.

Сам по себе REST не является стандартом. Нет чёткого описания того, что должно быть, а чего не должно быть, поэтому в разных командах ограничения могут немного различаться. Сами RESTful сервисы используют стандарты HTTP, JSON, XML и URL.

Обычно используются следующие методы HTTP:

  • POST — для создания записи или объекта. Возможные коды ответа HTTP 201 Created, HTTP 500 Internal Server Error и другие.
  • GET — для получения записи или объекта. Возможные коды ответа HTTP 200 OK, HTTP 404 Not Found, HTTP 500 Internal Server Error и другие.
  • PUT — для обновления записи или объекта. Возможные коды ответа HTTP 200 OK, HTTP 404 Not Found, HTTP 500 Internal Server Error и другие.
  • DELETE — для удаления объекта. Возможные коды ответа HTTP 204 No Content, HTTP 500 Internal Server Error и другие.

Для сервисов построенных по архитектурному стилю REST должно соблюдаться правило, что между запросами от клиента никакая информация о состоянии этого клиента не хранится (stateless). Вся необходимая информация о клиенте передаётся в самом запросе. Например, могут использоваться JWT-токены.

Как и обычные сайты в сети сервисы REST могут выполнять кэширование, которое строится с учётом методов HTTP. Например, для метода POST кэширование не должно выполняться, а для метода GET кэширование результатов допустимо.

Сервисы, построенные по архитектурному стилю REST, можно документировать с помощью RAML или Swagger.

Для REST сервисов применимо понятие идемпотентность. Идемпотентным называется HTTP метод, который можно безбоязненно вызывать несколько раз, ожидая той же самой реакции сервера: GET, PUT. Идемпотентным называется HTTP метод, который нельзя вызывать повторно, не проверив дополнительно, что прошлый запрос был успешным. Например, если покупка в онлайн магазине осуществляется с помощью POST, то при потере связи нам уже будет неизвестно, отработал запрос или нет. При восстановлении соединения нельзя пытаться отправить запрос ещё раз, так как это может привести к дублированию покупки.

Методы REST используют URL для доступа к ресурсам, коды ошибок HTTP для различных ответов сервера, заголовки HTTP для описания типов передаваемых данных и дополнительной информации.


Поделиться:

Добавить комментарий

Ваш адрес email не будет опубликован.