Sobes.tech
Назад к вопросам
Junior — Middle
66

Как отличить методы HTTP GET, POST, PUT, PATCH и DELETE в контексте работы REST API?

Компании, где спрашивали
Eclipse Digital

Ответ от нейросети

sobes.tech AI

В REST API методы HTTP используются для разных операций с ресурсами:

  • GET — получение данных. Безопасный и идемпотентный метод, не изменяет состояние сервера.
  • POST — создание нового ресурса или выполнение операции, которая изменяет состояние. Не идемпотентен.
  • PUT — полное обновление ресурса. Идемпотентен, повторный запрос с теми же данными не изменит результат.
  • PATCH — частичное обновление ресурса. Не обязательно идемпотентен, зависит от реализации.
  • DELETE — удаление ресурса. Идемпотентен, повторный вызов удалит ресурс или вернёт, что его нет.

Пример:

Метод Операция Идемпотентность Пример использования
GET Получить данные Да Получить список пользователей
POST Создать ресурс Нет Создать нового пользователя
PUT Обновить ресурс Да Заменить профиль пользователя
PATCH Частично обновить Частично Обновить email пользователя
DELETE Удалить ресурс Да Удалить пользователя

Пример на Java с использованием Spring:

@GetMapping("/users/{id}")
public User getUser(@PathVariable String id) { ... }

@PostMapping("/users")
public User createUser(@RequestBody User user) { ... }

@PutMapping("/users/{id}")
public User updateUser(@PathVariable String id, @RequestBody User user) { ... }

@PatchMapping("/users/{id}")
public User patchUser(@PathVariable String id, @RequestBody Map<String, Object> updates) { ... }

@DeleteMapping("/users/{id}")
public void deleteUser(@PathVariable String id) { ... }