În conformitate cu standardul RESTful, pe lângă metodele uzuale GET, POST, PUT și DELETE, protocolul HTTP definește operațiuni specializate:
@app.patch("/{id}"): Folosit pentru actualizarea parțială a unei resurse (de exemplu modificarea unui singur câmp dintr-un profil de utilizator fără a suprascrie restul atributelor).@app.head("/{id}"): Returnează exact aceleași antete HTTP ca un apel GET, dar fără corpul răspunsului (util pentru verificarea existenței sau a dimensiunii fișierelor mari).@app.options("/{id}"): Interoghează serverul cu privire la metodele și politicile CORS permise pe endpoint-ul respectiv.
Exemplu: Rută PATCH pentru actualizare parțială cu Pydantic
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import Optional
app = FastAPI()
class ItemUpdate(BaseModel):
name: Optional[str] = None
price: Optional[float] = None
in_stock: Optional[bool] = None
db = {1: {"name": "Laptop", "price": 4500.0, "in_stock": True}}
@app.patch("/items/{item_id}")
async def patch_item(item_id: int, update: ItemUpdate):
if item_id not in db:
raise HTTPException(status_code=404, detail="Produsul nu există")
# model_dump(exclude_unset=True) extrage DOAR câmpurile trimise de client:
update_data = update.model_dump(exclude_unset=True)
db[item_id].update(update_data)
return db[item_id]
Întrebări & Exemple de Cod:
@app.patch(), @app.options() și @app.head() în FastAPIAi o nelămurire despre utilizarea comenzii
@app.patch(), @app.options() și @app.head() în FastAPIsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.