Claude Code ile Yazılım Geliştirme
Dani Zysman
AI Curriculum Manager @ DataCamp

music-analytics-api/
app.py # Mevcut API (db_routes kaydıyla güncellendi)
routes.py # Mevcut rotalar
models.py # Artist/Album modelleri
db_routes.py # <- Veritabanı destekli yeni Blueprint
chinook.db
test_routes.py
CLAUDE.md
> Yeni bir db_routes.py blueprint'i oluştur;
/artists/<artist_id>/albums endpoint'i tüm albümleri
belli bir sanatçı için chinook,db'den JSON olarak döndürsün. @app.py ile kaydet
1. db_routes py - Yeni Flask Blueprint:
- chinook.db'ye bağlanmak için get_db_connection() yardımcı işlevi
- Belirli bir sanatçının tüm albümlerini sorgulayan endpoint eklendi
- JSON olarak AlbumId, Title ve ArtistId alanlarını döndürür
2. app.py güncellendi
- Blueprint kaydedildi; yeni endpoint aktif
Sanatçı yoksa endpoint 404 döndürür
ve albümleri başlığa göre sıralı JSON döndürür.
@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": []} döndürüyorfrom pydantic import BaseModel
from typing import List
class Album(BaseModel):
id: int
title: str
class ArtistAlbums(BaseModel):
artist_id: int
albums: List[Album]
> @db_routes.py'ye Pydantic doğrulaması ekle. Sanatçı yoksa
ya da albümü yoksa mesajla 404 döndür.
Tamam! db_routes.py'ye Pydantic doğrulaması eklendi:
Değişiklikler:
- Album modeli eklendi (album_id, title, artist_id)
- Sanatçı yoksa 404 "Artist not found" döner
- Sanatçının albümü yoksa 404 "Artist has no albums" döner
- Döndürmeden önce her albümü Album modeliyle doğrular
- Doğrulama hatalarında 400 döner
Yanıtlar:
- 404 "Artist not found"
- 404 "Artist has no albums"
- 200 doğrulanmış albüm verisiyle
Claude Code ile Yazılım Geliştirme