Розробка ПЗ з Claude Code
Dani Zysman
AI Curriculum Manager @ DataCamp

music-analytics-api/
app.py # Наявний API (оновлено для реєстрації db_routes)
routes.py # Наявні маршрути
models.py # Моделі Artist/Album
db_routes.py # <- Новий 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 - Новий Flask Blueprint із:
- хелпером get_db_connection() для підключення до chinook.db
- доданим ендпойнтом, що робить запит до бази даних для всіх альбомів конкретного виконавця
- повертає JSON з полями AlbumId, Title та ArtistId
2. Оновлено app.py
- зареєстровано blueprint, тож новий ендпойнт активний
Ендпойнт поверне 404, якщо виконавця не існує,
а також повертає альбоми, відсортовані за назвою, у форматі 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]
> Add Pydantic validation to @db_routes.py. Return 404 with a message if the
artist doesn't exist or has no albums.
Готово! Додано валідацію Pydantic до db_routes.py:
Зміни:
- Додано модель Album (album_id, title, artist_id)
- Повертає 404 "Artist not found", якщо виконавця не існує
- Повертає 404 "Artist has no albums", якщо у виконавця немає альбомів
- Перевіряє кожен альбом на відповідність моделі Album перед поверненням
- Повертає 400 у разі помилок валідації
Відповіді:
- 404 "Artist not found"
- 404 "Artist has no albums"
- 200 із валідованими даними альбомів
Розробка ПЗ з Claude Code