KentLens API, Power BI raporunda kullanılan mart görünümlerini güvenli ve
salt okunur HTTP uçlarıyla sunar. Serbest SQL çalıştıran bir uç bulunmaz.
Ön koşullar:
- Docker Desktop ve KentLens PostgreSQL konteyneri çalışıyor olmalı.
- Proje kökündeki
.envdosyasında API kullanıcısı bulunmalı. - Python bağımlılıkları geliştirme grubu ile kurulmuş olmalı.
.\scripts\setup_readonly_logins.ps1
.\scripts\start_api.ps1API yalnızca yerel makinede http://127.0.0.1:8000 adresini dinler.
- Swagger UI:
http://127.0.0.1:8000/docs - OpenAPI JSON:
http://127.0.0.1:8000/openapi.json - Sağlık kontrolü:
http://127.0.0.1:8000/health
| Yöntem | Yol | Amaç |
|---|---|---|
GET |
/health |
Veritabanı, API rolü ve salt okunur işlem kontrolü |
GET |
/api/v1/meta/sources |
Kaynak kataloğu ve atıf bilgileri |
GET |
/api/v1/meta/etl/latest |
Son ETL çalışmasının özeti |
GET |
/api/v1/executive-summary |
Trafik ve çevre yönetici KPI'ları |
GET |
/api/v1/districts |
Aktif İstanbul ilçeleri |
GET |
/api/v1/mobility/districts |
İlçe trafik karşılaştırması |
GET |
/api/v1/mobility/events |
Filtrelenebilir ve sayfalı trafik olayları |
GET |
/api/v1/environment/daily |
Günlük hava ve hava kalitesi verileri |
GET |
/api/v1/data-quality |
Kaynak ve kalite kuralı bazında bulgular |
Örnek:
Invoke-RestMethod `
"http://127.0.0.1:8000/api/v1/mobility/events?district_code=3430&page=1&page_size=10"Tarih kullanan uçlarda MVP aralığı 2023-01-01–2023-12-31 ile sınırlıdır.
Sayfalı uçlarda page_size en fazla 100 olabilir. Hatalı parametreler 4xx
yanıtı üretir.
- API,
kentlens_api_userhesabı vekentlens_apisalt okunur rolüyle bağlanır. - Her işlemde PostgreSQL
READ ONLYmodu ayrıca uygulanır. - Yalnızca önceden tanımlı, parametreli
SELECTsorguları çalıştırılır. - API kullanıcısına tablo değiştirme veya veri yazma yetkisi verilmez.
- Sorgu süresi varsayılan olarak 15 saniye ile sınırlandırılır.
- Parolalar yalnızca Git tarafından yok sayılan yerel
.envdosyasında tutulur. - Yanıtlarda kullanılan açık veri kaynakları ve atıf bilgileri gösterilir.
.\.venv\Scripts\python.exe -m pytest -q
.\.venv\Scripts\python.exe -m ruff check backend
.\.venv\Scripts\python.exe -m scripts.check_api_db_security