Короткий ответ
REST — архитектурный стиль для сетевых API, основанный на ресурсах, адресуемых по URL, и операциях над ними через стандартные HTTP-методы; ключевые принципы — клиент-серверность, отсутствие состояния сессии на сервере (statelessness), кэшируемость, единообразный интерфейс и слоистость.
Как это работает подробнее
каждый ресурс (пользователь, заказ) имеет уникальный URL; состояние приложения передаётся клиентом в каждом запросе (например, через токен), а не хранится сервером между запросами — это упрощает масштабирование и отказоустойчивость.
Пример кода
example.txt
Ресурсный подход (REST-стиль):
GET /users/42 -> получить пользователя
PATCH /users/42 -> обновить пользователя
DELETE /users/42 -> удалить пользователя
RPC-подобный подход (не REST):
POST /getUser?id=42
POST /updateUser
POST /deleteUserЧто использовать на практике
- Рекомендация. "RESTful API" на практике часто означает "HTTP API с ресурсами и JSON", без строгого соблюдения всех академических принципов (например, HATEOAS редко реализуют полностью). Важно согласовать с командой, какие принципы обязательны для конкретного API, и зафиксировать это в контракте.
Подводные камни
- Риски. хранить состояние сессии в памяти процесса сервера (нарушает statelessness и мешает горизонтальному масштабированию); использовать глаголы в URL вместо существительных-ресурсов (
/getUserвместо/users/{id}); путать RPC-подобный API (действия через POST) с чистым REST и называть любой HTTP API "RESTful" без уточнения.