Rilasciato · in miglioramento
Framework · Dal 2018
FastAPI è un framework web Python ad alte prestazioni per creare API, che sfrutta i tipi per validazione, serializzazione e documentazione automatica.
FastAPI è un framework moderno per creare API web in Python. Sebastián Ramírez lo ha pubblicato per la prima volta nel 2018 e oggi è sviluppato come progetto open source con un'ampia comunità. Si basa su Starlette per lo strato web e su Pydantic per la validazione dei dati: le annotazioni di tipo dei parametri bastano per convertire e validare le richieste, serializzare le risposte e generare una descrizione OpenAPI dell'API.
FastAPI è adatto soprattutto dove contano la validazione degli input e la documentazione: backend REST, microservizi, esposizione di modelli di machine learning e strumenti interni. Poiché gira su ASGI, gli endpoint async gestiscono in modo efficiente molte connessioni concorrenti, mentre le normali funzioni def continuano a funzionare. Il sistema di dependency injection permette di separare sessioni di database, autenticazione e configurazione e di sostituirle facilmente nei test.
Per iniziare, crea un ambiente virtuale, installa con pip install "fastapi[standard]", avvia fastapi dev main.py e apri /docs per chiamare i tuoi endpoint dalla documentazione interattiva. La guida ufficiale Tutorial - User Guide procede passo dopo passo dai parametri di percorso fino a sicurezza, database e test, ed è pensata per essere letta in ordine. Una volta presa confidenza con le annotazioni di tipo di Python e i modelli Pydantic, il resto di FastAPI viene in modo naturale.
I tipi dei parametri e i modelli Pydantic bastano per convertire e validare i dati della richiesta, con errori dettagliati per gli input non validi.
Dal codice viene generato uno schema OpenAPI, servito come documentazione interattiva su /docs (Swagger UI) e /redoc.
Dichiara sessioni di database, autenticazione o parametri comuni con Depends; FastAPI li risolve a ogni richiesta e i test possono sostituirli.
Basati su Starlette e ASGI, gli endpoint async def gestiscono in modo efficiente molte connessioni concorrenti, accanto alle normali funzioni def.
Crea e attiva un ambiente virtuale Python nella cartella del progetto. Il comando qui sotto vale per macOS e Linux; su Windows attivalo con .venv\Scripts\activate.
python -m venv .venv && source .venv/bin/activateInstalla FastAPI con gli extra standard, che includono dipendenze di uso comune come il server Uvicorn e lo strumento da riga di comando fastapi.
pip install "fastapi[standard]"Crea main.py e avvia il server di sviluppo. Si ricarica automaticamente quando modifichi il codice, e su http://127.0.0.1:8000/docs trovi la documentazione interattiva dell'API.
fastapi dev main.pyFastAPI() crea l'applicazione e il decoratore @app.get collega un percorso e un metodo HTTP a una funzione. Il dizionario restituito diventa una risposta JSON. Nel secondo endpoint, item_id: int converte e valida il valore del percorso come intero, mentre q, che ha un valore predefinito, diventa un parametro di query facoltativo. Avvia fastapi dev main.py e prova entrambi gli endpoint da /docs.
main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, world!"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str | None = None):
return {"item_id": item_id, "q": q}
pip install "fastapi[standard]"
fastapi dev main.pySei capitoli che ti accompagnano dall'installazione ai concetti chiave di FastAPI.
Fai domande, condividi la tua esperienza e scambia opinioni su FastAPI.
Ancora nessuna discussione. Avvia la prima.
0 commenti
Accedi · Accedi per lasciare un commento.
Scrivi tu il primo commento.