Tipurile Annotated în FastAPI Modern în FastAPI

validation FastAPI 0.95+ / Python 3.9+ (PEP 593) Q&A / Distribuie cod

Standardul modern recomandat de tipizare în FastAPI: utilizarea typing.Annotated pentru cod curat, auto-documentare și compatibilitate cu linters.

Sintaxă
Annotated[tip_date, Depends(...) / Query(...) / Path(...)]

Începând cu versiunile recente, FastAPI recomandă utilizarea tipului standard typing.Annotated (introdus în Python 3.9 prin PEP 593) pentru declararea tuturor dependențelor și validărilor.

Avantaje majore:

  • Separă clar tipul Python al variabilei (de exemplu int sau str) de metadatele FastAPI (cum ar fi Query(), Depends() sau Header()).
  • Permite atribuirea de valori implicite reale în Python (= None) fără a folosi trucuri de framework.
  • Permite reutilizarea tipurilor compuse personalizate (Type Aliases) în multiple endpoint-uri.
Exemplu: Definirea de Type Aliases reutilizabile cu Annotated
from fastapi import FastAPI, Query
from typing import Annotated

app = FastAPI()

# Definim un alias reutilizabil pentru parametrii de căutare:
SearchQuery = Annotated[
    str | None,
    Query(min_length=3, max_length=50, description="Termen de căutare de minim 3 caractere")
]

@app.get("/articles")
async def search_articles(q: SearchQuery = None):
    return {"query": q}

@app.get("/users")
async def search_users(q: SearchQuery = None):
    return {"query": q}

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Tipurile Annotated în FastAPI Modern

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