Какой HTTP-метод REST используется для удаления сущности?

«Какой HTTP-метод REST используется для удаления сущности?» — вопрос из категории Сети, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для удаления сущности в REST API используется HTTP-метод DELETE.

Ключевые характеристики:

  • Идемпотентный: Повторные идентичные запросы к одному и тому же ресурсу приводят к одному и тому же результату (ресурс остаётся удалённым).
  • Безопасный: Нет, метод изменяет состояние на сервере.

Типичная реализация и статусы ответа:

@DeleteMapping("/users/{id}")
public ResponseEntity<Void> deleteUser(@PathVariable Long id) {
    userService.deleteById(id);
    return ResponseEntity.noContent().build(); // 204 No Content
}
  • Успех (ресурс удалён): Возвращают статус 204 (No Content) без тела ответа.
  • Ресурс не найден: Можно вернуть 404 (Not Found).
  • Запрещено: 403 (Forbidden) или 401 (Unauthorized).

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