Softwareontwikkeling met Claude Code
Dani Zysman
AI Curriculum Manager @ DataCamp

music-analytics-api/
app.py # Bestaande API (bijgewerkt om db_routes te registreren)
routes.py # Bestaande routes
models.py # Artist/Album-modellen
db_routes.py # <- Nieuwe database-gestuurde Blueprint
chinook.db
test_routes.py
CLAUDE.md
> Create a new db_routes.py blueprint with an endpoint at
/artists/<artist_id>/albums that returns all albums by
a specific artist as JSON from chinook,db. Register it with @app.py
1. db_routes py - Nieuwe Flask-Blueprint met:
- get_db_connection() helper om te verbinden met chinook.db
- Endpoint toegevoegd dat alle albums voor een specifieke artiest uit de database ophaalt
- Geeft JSON terug met velden AlbumId, Title en ArtistId
2. app.py bijgewerkt
- De blueprint geregistreerd zodat het nieuwe endpoint actief is
Het endpoint geeft 404 terug als de artiest niet bestaat,
en retourneert albums als JSON, gesorteerd op titel.
@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": []} terugfrom pydantic import BaseModel
from typing import List
class Album(BaseModel):
id: int
title: str
class ArtistAlbums(BaseModel):
artist_id: int
albums: List[Album]
> Add Pydantic validation to @db_routes.py. Return 404 with a message if the
artist doesn't exist or has no albums.
Klaar! Pydantic-validatie toegevoegd aan db_routes.py:
Wijzigingen:
- Album-model toegevoegd (album_id, title, artist_id)
- Geeft 404 "Artist not found" als artiest niet bestaat
- Geeft 404 "Artist has no albums" als artiest geen albums heeft
- Valideert elk album tegen Album-model vóór teruggave
- Geeft 400 bij validatiefouten
Responses:
- 404 "Artist not found"
- 404 "Artist has no albums"
- 200 met gevalideerde albumdata
Softwareontwikkeling met Claude Code