GET
— получение информации об объекте (ресурсе);POST
— создание, а иногда и изменение объекта (ресурса);PUT
— изменение объекта (ресурса). Обычно используется для регулярного
обновления данных;
DELETE
— удаление информации об объекте (ресурсе).LIST
, UPDATE
, PATCH
и др.
Запрос REST API от клиента к серверу всегда состоит из следующих элементов:
Конечная точка (endpoint) — адрес, по которому отправляется запрос.
Один и тот же объект (ресурс) может иметь несколько конечных точек.
Например, чтобы отправить запрос на сервер службы доставки Food Delivery, может использоваться конечная
точка food-delivery.now/orders
. Чтобы посмотреть список заказов, можно
использовать конечную точку food-delivery.now/orders/list
, а чтобы
разместить новый заказ — food-delivery.now/orders/create
.
Параметры — делятся на параметры пути и параметры запроса.
Например, в запросе food-delivery.now/orders/{userId}/list
{userId}
— это параметр пути. Вместо {userId}
нужно подставить идентификатор конкретного пользователя, тогда запрос вернет список заказов этого
пользователя.
В запросе food-delivery.now/orders/list?orderId=123456
orderId
— это параметр запроса. Такой запрос вернет информацию о конкретном заказе.
В одном запросе может быть несколько параметров пути и несколько параметров запроса. Параметры запроса
соединяются между собой символом &. Например, запрос food-delivery.now/orders/shop/{shopId}/users/{userId}/list?top=10&sortDate=DESC
вернет список заказов в магазине {shopId}
для пользователя {userId}
, причем список будет содержать только 10 последних заказов, т.к.
он отсортирован по убыванию даты заказа.
Заголовки (headers) — в заголовках определяется формат передаваемых данных, спецификация и версия протокола обмена и другая информация, необходимая для корректной обработки запроса.
Если для выполнения запроса требуется аутентификация, в заголовке передаются сведения о пользователе — логин, токен и т.п. Заголовки не отображаются в пути запроса.
Тело запроса (body) — данные для обработки, как правило, в формате JSON.
Например, запрос для службы доставки может содержать номер заказа, адрес, телефон для связи и интервал
доставки, примерно так:
{“orderId”:123456, “address”:”623598, Москва, ул. Тимерязевская, 34”,
“phone”:”+8-800-568-08-98”, “time_interval”:”9:00-15:00”}
.