Skip to main content

Request Handling

Learn how to handle different types of HTTP requests in FastAPI.

HTTP Methods

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/")
def read_items():
return [{"item_id": "Foo"}]

@app.post("/items/")
def create_item(item: dict):
return item

@app.put("/items/{item_id}")
def update_item(item_id: int, item: dict):
return {"item_id": item_id, **item}

@app.delete("/items/{item_id}")
def delete_item(item_id: int):
return {"message": f"Item {item_id} deleted"}

Path Parameters

@app.get("/users/{user_id}/items/{item_id}")
def read_user_item(user_id: int, item_id: str):
return {"user_id": user_id, "item_id": item_id}

Query Parameters

@app.get("/items/")
def read_items(skip: int = 0, limit: int = 10):
return fake_items_db[skip : skip + limit]

Request Body

from pydantic import BaseModel

class Item(BaseModel):
name: str
price: float
is_offer: bool = False

@app.post("/items/")
def create_item(item: Item):
return item