Skip to content

Latest commit

 

History

History
66 lines (50 loc) · 2.48 KB

File metadata and controls

66 lines (50 loc) · 2.48 KB

KentLens API

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.

Yerel çalıştırma

Ön koşullar:

  • Docker Desktop ve KentLens PostgreSQL konteyneri çalışıyor olmalı.
  • Proje kökündeki .env dosyası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.ps1

API 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

Uçlar

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-012023-12-31 ile sınırlıdır. Sayfalı uçlarda page_size en fazla 100 olabilir. Hatalı parametreler 4xx yanıtı üretir.

Güvenlik

  • API, kentlens_api_user hesabı ve kentlens_api salt okunur rolüyle bağlanır.
  • Her işlemde PostgreSQL READ ONLY modu ayrıca uygulanır.
  • Yalnızca önceden tanımlı, parametreli SELECT sorguları ç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 .env dosyasında tutulur.
  • Yanıtlarda kullanılan açık veri kaynakları ve atıf bilgileri gösterilir.

Test

.\.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