În mod normal, dacă o funcție primește un singur model Pydantic ca parametru, FastAPI așteaptă ca întreg corpul JSON să fie chiar acel obiect. Dacă însă dorești ca JSON-ul să fie împachetat sub o cheie specifică (de exemplu {"item": {"name": "Laptop", "price": 4000}}), poți folosi parametrul Body(embed=True).
De asemenea, Body() permite definirea de parametri scalari individuali (cum ar fi un număr întreg sau un string) care trebuie citiți direct din corpul JSON, nu din URL.
Exemplu: Folosirea Body(embed=True) pentru cheie rădăcină în JSON
from fastapi import FastAPI, Body
from pydantic import BaseModel
from typing import Annotated
app = FastAPI()
class Product(BaseModel):
name: str
price: float
@app.post("/products")
async def create_product(
product: Annotated[Product, Body(embed=True)],
priority: Annotated[int, Body(ge=1, le=5, embed=True)]
):
# Corpul așteptat este:
# {
# "product": {"name": "Telefon", "price": 2500},
# "priority": 1
# }
return {"product": product, "priority": priority}
Întrebări & Exemple de Cod:
Configurarea Corpului JSON cu Body(embed=True)Ai o nelămurire despre utilizarea comenzii
Configurarea Corpului JSON cu Body(embed=True)sau 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.