← Back to Tutorials

19. Cookie Parameters

from fastapi import FastAPI, Cookie
from fastapi.responses import JSONResponse

app = FastAPI()

# Read cookies
@app.get("/items/")
def read_items(ads_id: str = Cookie(None)):
    return {"ads_id": ads_id}

# Set cookies
@app.get("/set-cookie/")
def set_cookie():
    response = JSONResponse({"message": "Cookie set"})
    response.set_cookie(
        key="my_cookie",
        value="cookie_value",
        max_age=3600,
        httponly=True,
        samesite="lax"
    )
    return response

# Delete cookies
@app.get("/delete-cookie/")
def delete_cookie():
    response = JSONResponse({"message": "Cookie deleted"})
    response.delete_cookie("my_cookie")
    return response

# Multiple cookies
@app.get("/read-all-cookies/")
def read_all_cookies(
    session_id: str = Cookie(None),
    user_pref: str = Cookie(None)
):
    return {"session_id": session_id, "user_pref": user_pref}
✏️ Exercise: Create an endpoint that reads a "visited" cookie. If not present, set it with current timestamp. Return the visit count based on cookie history.