PRO

Что такое REST? Какие HTTP-методы используются и когда?

REST — архитектурный стиль для сетевых API, в котором ресурсы имеют адреса, а клиент взаимодействует с ними через стандартные HTTP-методы и представления данных. В REST API обычно используют GET для чтения, POST для создания или действий, PUT для полной замены, PATCH для частичного обновления и DELETE для удаления.
Подробный ответ

Что такое REST

REST, Representational State Transfer, — архитектурный стиль взаимодействия между клиентом и сервером. В REST ресурс имеет URL, например /api/users/42, а клиент получает или изменяет его представление, обычно JSON, через HTTP.

Основные принципы

  • клиент и сервер разделены по ответственности;

  • запросы должны быть stateless: сервер не хранит состояние клиентской сессии между запросами без явного механизма;

  • ресурсы имеют понятные идентификаторы, обычно URL;

  • используются единообразные HTTP-интерфейсы;

  • ответы могут кэшироваться, если это уместно.

Основные HTTP-методы

МетодНазначениеПример
GETПолучить ресурс или список ресурсовGET /api/articles/42
POSTСоздать ресурс или выполнить действиеPOST /api/articles
PUTПолностью заменить ресурс по известному URLPUT /api/articles/42
PATCHЧастично обновить ресурсPATCH /api/articles/42
DELETEУдалить ресурсDELETE /api/articles/42

Пример REST-маршрутов

GET    /api/articles
POST   /api/articles
GET    /api/articles/42
PATCH  /api/articles/42
DELETE /api/articles/42

Идемпотентность

GET, PUT и DELETE обычно считаются идемпотентными: повторение одинакового запроса должно приводить к тому же итоговому состоянию. POST обычно не идемпотентен, потому что повторная отправка может создать несколько ресурсов, если API не использует idempotency key.

Как ответить на собеседовании

REST — стиль API, где клиент работает с ресурсами по URL через стандартные HTTP-методы. GET использую для чтения, POST — для создания или действия, PUT — для полной замены, PATCH — для частичного обновления, DELETE — для удаления. Хороший REST API использует понятные URL, корректные методы, status codes и stateless-запросы.

Оцени свой прогресс

Честно оцени своё понимание этого вопроса, чтобы мы могли построить твой учебный трек максимально эффективно.
Читать в блоге