Parametrul response_model în FastAPI în FastAPI

routing FastAPI 0.110+ / Pydantic v2 Q&A / Distribuie cod

Filtrarea automată a datelor de ieșire, ascunderea parolelor și secretelor din răspunsul JSON și documentarea schemei OpenAPI.

Sintaxă
@app.get("/users/{id}", response_model=UserPublic, response_model_exclude_unset=True)

Una dintre cele mai puternice funcționalități din FastAPI este parametrul response_model plasat în decoratorul rutei. Acesta definește modelul Pydantic folosit pentru a filtra, valida și serializa datele returnate de funcție.

Chiar dacă funcția returnează din baza de date un dicționar complet ce include câmpul password_hash, FastAPI va elimina automat orice atribut care nu este declarat în response_model, garantând că datele sensibile nu ajung niciodată la client.

Exemplu: Separarea modelului intern de modelul public prin response_model
from fastapi import FastAPI
from pydantic import BaseModel, EmailStr

app = FastAPI()

class UserInDB(BaseModel):
    username: str
    email: EmailStr
    hashed_password: str
    is_admin: bool

class UserPublic(BaseModel):
    username: str
    email: EmailStr

@app.get("/users/me", response_model=UserPublic)
async def get_current_user():
    user = UserInDB(
        username="dexter",
        email="dexter@dexblog.ro",
        hashed_password="bcrypt$secure$hash",
        is_admin=True
    )
    # FastAPI va returna DOAR username și email către client:
    return user

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Parametrul response_model în FastAPI

Ai o nelămurire despre utilizarea comenzii Parametrul response_model în FastAPI 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.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.