Ответ
REST (Representational State Transfer) — это архитектурный стиль, который использует стандартные HTTP-методы для выполнения операций над ресурсами. Основные методы соответствуют CRUD-операциям (Create, Read, Update, Delete).
Основные методы
-
GETНазначение: Получение ресурса или коллекции ресурсов. Это безопасный и идемпотентный метод, то есть многократные одинаковые запросы не изменяют состояние сервера. Пример:GET /api/users/123— получить данные пользователя с ID 123. -
POSTНазначение: Создание нового ресурса. Не является идемпотентным, так как каждый вызов создает новый уникальный ресурс. Пример:POST /api/users— создать нового пользователя (данные передаются в теле запроса). -
PUTНазначение: Полное обновление существующего ресурса. Если ресурс не существует, он может быть создан. Метод идемпотентен: повторный вызов с теми же данными не изменит результат. Пример:PUT /api/users/123— полностью заменить данные пользователя с ID 123. -
PATCHНазначение: Частичное обновление существующего ресурса. Применяет только переданные изменения, не затрагивая остальные поля. Не всегда является идемпотентным. Пример:PATCH /api/users/123— обновить только имя пользователя. -
DELETEНазначение: Удаление ресурса. Метод идемпотентен. Пример:DELETE /api/users/123— удалить пользователя.
Дополнительные методы
HEAD: АналогиченGET, но возвращает только заголовки без тела ответа. Используется для проверки существования ресурса или получения метаданных.OPTIONS: Возвращает список HTTP-методов, поддерживаемых для данного ресурса. Используется в механизме CORS.
Ответ 18+ 🔞
А, слушай, вот эта ваша REST-архитектура, блядь! Ну, внатуре, как будто всё просто, а потом смотришь — а какой-то мудак DELETE на главную страницу слать начал, и пиздец всему проекту, в рот меня чих-пых!
Короче, смотри. Это типа такой стиль, где всё крутится вокруг ресурсов — пользователи, заказы, котики там. И для них есть стандартные действия, как в жизни: создать, посмотреть, поменять, выкинуть нахуй. И для каждого действия — свой HTTP-глагол, как команда.
Основные, без которых нихуя не работает:
-
GETЧё делает: Достаёт ресурс или целую пачку. Это как безопасный идиот — можешь тыщу раз нажимать F5, хуйня не изменится, серверу похуй. Только читает. Пример:GET /api/users/123— дай-ка мне, сука, данные этого Васьки с айдишником 123. -
POSTЧё делает: Создаёт новый ресурс. Вот это уже не идемпотентное говно! Каждый раз, как вызовешь — рождается новая сущность, новый пользователь, новый заказ. Как дети, блядь. Пример:POST /api/users— эй, сервак, заведи нового юзера, вот тебе его паспортные данные в теле запроса. -
PUTЧё делает: Полностью переписывает существующий ресурс. Всё, что было — нахуй, вот тебе новые данные целиком. Идемпотентный — сколько раз ни отправляй одно и то же, результат будет как после первого раза. Если ресурса нет — может и создать, хитрая жопа. Пример:PUT /api/users/123— эй, Васька, ты теперь не Вася, а Василий, и родился не в Туле, а в Питере. Всё, конец истории. -
PATCHЧё делает: А это точечный апдейт, хирургический, блядь. Меняет только то, что попросили, остальное не трогает. С идемпотентностью там не всегда гладко, ёпта. Пример:PATCH /api/users/123— Вась, смени только аватарку, а всё остальное оставь как есть. -
DELETEЧё делает: Ну тут всё ясно, ёперный театр. Удаляет ресурс. Нахуй. Навсегда. И тоже идемпотентный — удалённый ресурс второй раз уже не удалить, он же труп. Пример:DELETE /api/users/123— Васька, ты уволен. Иди нахуй.
А есть ещё два таких, вспомогательных, чтоб мозги не ебать:
HEAD: Делает всё то же, чтоGET, но, сука, возвращает только заголовки, без тела. Типа «проверить, жив ли Васька», не качая всю его биографию. Удобно, блядь.OPTIONS: Этот вообще красавчик. Спрашиваешь у ресурса: «Чё ты вообще умеешь?». А он тебе в ответ: «Я, браток, понимаюGET,POST,PUT, ноDELETEот меня нахуй». Часто используется в этой вашей CORS-ебле, чтобы браузеры не охуевали.
Вот и вся магия. Главное — не путать, где PUT, а где PATCH, а то вместо смены пароля пользователю всю его жизнь перепишешь, пидарас шерстяной.