Proje: OkulUp API · Hub: OkulUp API — Architecture

OkulUp API — Mobil Konfigürasyon Endpoint’i

GET /mobile/config

Login sonrası mobil uygulama bu endpoint’i çağırır ve tüm konfigürasyonu tek seferde alır.

Response Yapısı

{
  "data": {
    "school": { "id": 1, "name": "..." },
    "features": { "messaging": true, "assignments": false, ... },
    "policies": { "message_reply_default": "teacher_only", ... },
    "branding": { "primary_color": "#FF5F1F", "logo_url": null, ... },
    "support": { "email": "...", "phone": "...", "help_center_url": "..." },
    "permissions": { "dashboard_teacher": true, "assignments_submit": false, ... }
  }
}
  • Okul yoksa: DEFAULT değerler döner
  • Okul varsa: SchoolSetting::getResolved*() merge’lenmiş değerler
  • permissions: AuthorizationService::getPermissions() — ~30 boolean flag

GET /app-config

Platform-level destek bilgileri (okul bağımsız):

{ "data": { "support_email": "...", "support_phone": "...", "help_center_url": "..." } }

Güvenlik Middleware (Global)

SecurityHeaders  → X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, HSTS, Referrer-Policy
SanitizeInput    → strip_tags + trim (content, password alanları hariç)
LogApiRequests   → method/path/status/duration/user_id loglar, sensitive fields maskeler