Files
python-doc/Docs/Libs/FastAPI/06-Delete-Method.md
2026-01-23 23:21:00 +03:30

3.2 KiB
Raw Blame History

FastAPI DELETE Method (Remove Resource)

This document demonstrates how to use the HTTP DELETE method in FastAPI to remove an existing resource. It completes the CRUD workflow using GET, POST, PUT, and DELETE operations.


Example Application

Create or update main.py with the following content:

from fastapi import FastAPI

app = FastAPI()

users = [
    {"name": "abbas", "age": 20},
    {"name": "mmd", "age": 37},
    {"name": "asghar", "age": 19},
]


@app.get("/")
def home_page():
    return {"msg": "API is working"}


@app.get("/users")
def show_users():
    return users


@app.post("/create_user")
def create_user(name: str, age: int):
    new_user = {"name": name, "age": age}
    users.append(new_user)
    return {"msg": f"user {name} with age {age} created"}


@app.put("/update_user/{target_name}")
def update_user(target_name: str, age: int):
    for user in users:
        if user["name"] == target_name:
            user["age"] = age
            return {"msg": f"user {target_name} updated"}
    return {"msg": "user not found"}


@app.delete("/delete_user/{target_name}")
def delete_user(target_name: str):
    for user in users:
        if user["name"] == target_name:
            users.remove(user)
            return {"msg": f"user {target_name} deleted"}
    return {"msg": "user not found"}

Code Overview

DELETE Endpoint Definition

@app.delete("/delete_user/{target_name}")
def delete_user(target_name: str):
  • Registers an HTTP DELETE endpoint
  • target_name is a path parameter
  • Used to remove a user from the data store

Delete Logic

for user in users:
    if user["name"] == target_name:
        users.remove(user)
  • Iterates through the users list
  • Finds a matching user by name
  • Removes the user from the list

Success Response

{
  "msg": "user abbas deleted"
}

Returned when the user is successfully removed.


Failure Response

{
  "msg": "user not found"
}

Returned when the specified user does not exist.


Example Requests

Delete a User

curl -X DELETE "http://localhost:8000/delete_user/abbas"

Verify Deletion

GET /users

Response:

[
  {"name": "mmd", "age": 37},
  {"name": "asghar", "age": 19}
]

Running the Application

Start the service with uvicorn:

uvicorn main:app --reload

CRUD Endpoint Summary

Method Endpoint Description
GET / Health check
GET /users Retrieve all users
POST /create_user Create a user
PUT /update_user/{name} Update a user
DELETE /delete_user/{name} Delete a user

Best Practices

  • Use DELETE only for resource removal
  • Return appropriate HTTP status codes (204, 404)
  • Ensure delete operations are idempotent
  • Avoid modifying in-memory data in production
  • Add authentication and authorization for destructive operations
  • Log delete actions for auditability
  • Use database transactions when deleting persistent data