Ответ
HTTP-метод DELETE используется в REST API для удаления конкретного ресурса, идентифицируемого по URI.
Ключевые характеристики:
-
Идемпотентность:
DELETEявляется идемпотентным методом. Это означает, что повторное выполнение одного и того же запросаDELETEприведет к тому же состоянию системы. Первый запрос удалит ресурс, а последующие просто подтвердят, что ресурс уже удален (обычно возвращая404 Not Found). -
Специфичность: Запрос всегда направлен на конкретный ресурс (например,
/api/users/123), в отличие отPOST, который может создавать ресурс в коллекции (/api/users).
Ответы сервера:
200 OK: Ресурс успешно удален, и в теле ответа может содержаться сообщение об этом.204 No Content: Ресурс успешно удален, тело ответа пустое. Это частый и предпочтительный ответ дляDELETE.404 Not Found: Ресурс, который пытались удалить, не найден.
Пример на Flask:
from flask import Flask, jsonify
app = Flask(__name__)
# Имитация базы данных
users = {1: {"name": "Alice"}, 2: {"name": "Bob"}}
@app.route('/api/users/<int:user_id>', methods=['DELETE'])
def delete_user(user_id):
if user_id in users:
del users[user_id]
# 204 No Content - лучший выбор, так как клиенту не нужна доп. информация
return '', 204
else:
# 404 Not Found, если пользователь не существует
return jsonify({"error": "User not found"}), 404