Под REST (RESTful) подразумевают основные принципы, по которым приложение или сетевой ресурс взаимодействует с сервером при помощи протокола HTTP. Его особенным отличием https://itvdn.com/ru/blog/article/rest-api-18 является то, что сервер не помнит состояние пользователя в перерыве меж запросами. То есть идентифицирующая его информация и нужные параметры передаются с каждым следующим запросом. Типичным примером могут служить API соцсетей.

Собственно API – это программный интерфейс, предназначенный для взаимодействия между программами. REST — это интерфейс связи, работающий благодаря протоколу HTTP. 

Сама по себе архитектура REST не привязана к использованию конкретных технологий и протоколов. Однако современная Web реальность такова, что для построения RESTful API практически всегда используется HTTP плюс какой-то распространенный формат представления ресурсов. В связи с этим способы взаимодействия отличаются. Выделяют три типа. Раньше был распространен REST API XML, сейчас в большей мере известен REST API JSON, завтра перейдут к REST API GraphQL. 

Способы взаимодействия с сервером

Состоит минимум из четырех действий:

  1. Прием информации с сервера (не должен изменять его состояние). 
  2. Внесение новых сведений.
  3. Изменение уже имеющихся.
  4. Удаление информации.
    Такого количества достаточно, хотя для конкретной задачи их может быть и больше. Каждый вид требует своего метода запроса – соответственно GET, POST, PUT и DELETE.

HTTP методы создания сервисов RESTful

С помощью HTTP метода GET удается получать либо читать представления ресурса. Если в адресе нет ошибок, GET вернет представление ресурса в формате XML либо JSON вместе с кодом состояния HTTP 200 (OK). Если ошибки есть, приходит код 404 (NOT FOUND) или 400 (BAD REQUEST). 

Метод PUT дает возможность обновить ресурс. При отправлении запроса к имеющемуся ресурсу URI, в теле запроса должны содержаться обновленные данные изначального ресурса (целиком или обновляемая часть). Если нужно создать новые экземпляры ресурса, лучше применить POST запрос. Он предназначен для создания новых, но чаще используется с целью создать вложенный ресурс. Важно помнить, что это не безопасный или идемпотентный запрос. Поэтому его рекомендуют только для не идемпотентных запросов. Методом DELETE удаляют ресурсы, идентифицированные конкретным URI (ID). Также существует предостережение об идемпотентности DELETE.