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

Ответ

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, а то вместо смены пароля пользователю всю его жизнь перепишешь, пидарас шерстяной.