0Pricing
Python Academy · Lezione

Configurazione di un progetto FastAPI e primo endpoint

Installi FastAPI, crei un progetto e scriva il suo primo endpoint GET.

Configurazione di un progetto FastAPI e primo endpoint è una lezione Python Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Python Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Python Academy include 4 lezioni in totale.

Che cos'è FastAPI?

FastAPI è un moderno framework web Python per creare API REST. Fornisce automaticamente la documentazione OpenAPI, modelli di richiesta e risposta verificati in base ai tipi tramite Pydantic e prestazioni native asincrone.

# pip install fastapi uvicorn
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def root():
    return {"message": "Hello, FastAPI"}

Avvio del server

Esegua il server con uvicorn. Il flag --reload lo riavvia automaticamente quando il codice cambia durante lo sviluppo.

# main.py
from fastapi import FastAPI
app = FastAPI()

@app.get("/health")
def health(): return {"status": "ok"}

# Terminal:
# uvicorn main:app --reload
# → http://127.0.0.1:8000
# → http://127.0.0.1:8000/docs  (Swagger UI)

Metodi HTTP

Decori le funzioni delle route con @app.get, @app.post, @app.put, @app.delete oppure @app.patch.

from fastapi import FastAPI
app = FastAPI()

@app.get("/items")
def list_items(): return []

@app.post("/items")
def create_item(): return {"id": 1}

@app.delete("/items/{item_id}")
def delete_item(item_id: int): return {"deleted": item_id}

Parametri del percorso

Dichiari i parametri del percorso nella stringa della route con {name} e come argomenti della funzione con annotazioni di tipo.

from fastapi import FastAPI
app = FastAPI()

@app.get("/users/{user_id}")
def get_user(user_id: int):
    return {"user_id": user_id, "name": "Alice"}

# GET /users/42  → {"user_id": 42, "name": "Alice"}

Parametri di query

I parametri della funzione che non compaiono nel percorso diventano parametri di query.

from fastapi import FastAPI
app = FastAPI()

@app.get("/items")
def list_items(skip: int = 0, limit: int = 10, q: str | None = None):
    return {"skip": skip, "limit": limit, "q": q}

# GET /items?skip=5&limit=20&q=search

Request body Pydantic

Utilizzi un BaseModel Pydantic come tipo del parametro per dichiarare e convalidare un request body JSON.

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
    name: str
    price: float
    in_stock: bool = True

@app.post("/items")
def create_item(item: Item):
    return {"received": item.model_dump()}

Errori di validazione Pydantic

Se il request body non corrisponde allo schema, FastAPI restituisce automaticamente un errore 422 Unprocessable Entity con un messaggio dettagliato.

# POST /items with body {"name": 123}
# → HTTP 422 Unprocessable Entity
# {
#   "detail": [
#     {
#       "type": "string_type",
#       "loc": ["body","name"],
#       "msg": "Input should be a valid string"
#     }
#   ]
# }

Modelli di risposta

Utilizzi response_model= per dichiarare ciò che l'endpoint restituisce. FastAPI convalida la risposta ed esclude i campi aggiuntivi.

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class UserOut(BaseModel):
    id: int
    name: str

@app.get("/users/{uid}", response_model=UserOut)
def get_user(uid: int):
    return {"id": uid, "name": "Alice", "password": "secret"}  # password filtered out

Codici di stato

Imposti il codice di stato predefinito per le risposte positive con status_code=. Importi i codici comuni da fastapi.status.

from fastapi import FastAPI, status
app = FastAPI()

@app.post("/items", status_code=status.HTTP_201_CREATED)
def create_item():
    return {"id": 1}

# HTTP 201 Created is returned on success

HTTPException

Sollevi HTTPException per restituire una risposta di errore con un codice di stato e un messaggio dettagliato personalizzati.

from fastapi import FastAPI, HTTPException
app = FastAPI()

fake_db = {1: "Alice"}

@app.get("/users/{uid}")
def get_user(uid: int):
    if uid not in fake_db:
        raise HTTPException(status_code=404, detail="User not found")
    return {"name": fake_db[uid]}

Documentazione automatica

FastAPI genera automaticamente Swagger UI all'indirizzo /docs e ReDoc all'indirizzo /redoc a partire dalle annotazioni delle route.

# After starting with uvicorn:
# http://localhost:8000/docs     — Swagger UI (try the API live)
# http://localhost:8000/redoc    — ReDoc (clean docs view)
# http://localhost:8000/openapi.json  — raw OpenAPI schema

Verifica rapida

Come si dichiara in FastAPI un parametro obbligatorio del request body JSON?

Riepilogo

Le route FastAPI sono funzioni decorate: i parametri del percorso si trovano nell'URL, i parametri di query sono argomenti tipizzati e i request body sono modelli Pydantic. Sollevi HTTPException per gli errori. Swagger UI viene generata automaticamente all'indirizzo /docs.

Domande Frequenti

La lezione «Configurazione di un progetto FastAPI e primo endpoint» è gratuita?

Sì — il testo completo di «Configurazione di un progetto FastAPI e primo endpoint» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Python Academy, passa a CoddyKit PRO. Il corso Python Academy include 4 lezioni in totale.

Cosa imparerò in «Configurazione di un progetto FastAPI e primo endpoint»?

Installi FastAPI, crei un progetto e scriva il suo primo endpoint GET. Eserciti Python Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Python Academy?

Non è richiesta alcuna esperienza precedente. Python Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Configurazione di un progetto FastAPI e primo endpoint»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Python Academy?

Sì. Ogni lezione Python Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Configurazione di un progetto FastAPI e primo endpoint
  2. Parametri del percorso, parametri query e body delle richieste
  3. Dependency injection e autenticazione
  4. Endpoint asincroni e integrazione con il database
← Torna a Python Academy