Sviluppo software con Claude Code
Dani Zysman
AI Curriculum Manager @ DataCamp

music-analytics-api/
app.py # API esistente (aggiornata per registrare db_routes)
routes.py # Route esistenti
models.py # Modelli Artist/Album
db_routes.py # <- Nuovo Blueprint con database
chinook.db
test_routes.py
CLAUDE.md
> Crea un nuovo blueprint db_routes.py con un endpoint su
/artists/<artist_id>/albums che restituisce tutti gli album di
un artista specifico come JSON da chinook,db. Registralo in @app.py
1. db_routes py - Nuovo Blueprint Flask con:
- helper get_db_connection() per connettersi a chinook.db
- Endpoint che interroga il database per tutti gli album di un artista specifico
- Restituisce JSON con campi AlbumId, Title e ArtistId
2. Aggiornato app.py
- Registrato il blueprint così il nuovo endpoint è attivo
L'endpoint restituisce 404 se l'artista non esiste
e restituisce gli album ordinati per titolo in JSON.
@app.route("/artists/<int:artist_id>/albums")
def get_artist_albums(artist_id):
conn = get_db()
artist = conn.execute("SELECT ... WHERE ArtistId = ?", ...)
albums = conn.execute("SELECT ... WHERE ArtistId = ?", ...)
conn.close()
return jsonify({"artist": ..., "albums": [...]})
$ python app.py & PID=$! && sleep 3 && curl http://127.0.0.1:5000/artists/1/albums
&& kill $PID
127.0.0.1 "GET /artists/1/albums HTTP/1.1" 200
[
{
"album_id": 1,
"artist_id": 1,
"title": "For Those About To Rock We Salute You"
},
{
"album_id": 4,
"artist_id": 1,
"title": "Let There Be Rock"
}
]
{"albums": []}from pydantic import BaseModel
from typing import List
class Album(BaseModel):
id: int
title: str
class ArtistAlbums(BaseModel):
artist_id: int
albums: List[Album]
> Aggiungi la validazione Pydantic a @db_routes.py. Restituisci 404 con un messaggio se
l'artista non esiste o non ha album.
Fatto! Aggiunta la validazione Pydantic a db_routes.py:
Modifiche:
- Aggiunto modello Album (album_id, title, artist_id)
- Restituisce 404 "Artist not found" se l'artista non esiste
- Restituisce 404 "Artist has no albums" se l'artista non ha album
- Valida ogni album rispetto al modello Album prima di restituire
- Restituisce 400 su errori di validazione
Risposte:
- 404 "Artist not found"
- 404 "Artist has no albums"
- 200 con dati album validati
Sviluppo software con Claude Code