Geliştiriciler · API v1.0.0

Sürüm Desteği ve Versiyonlama Politikası

Mevcut sürüm

Güncel API sürümü 1.0.0
Base path /api/v1
Desteklenen en eski sürüm 1.0.0
Sürüm sorgulama GET /api/v1/version ve her yanıtta X-NotiPilot-API-Version başlığı

API sürüm durumu

Sürüm Base path Durum Destek sonu
1.x /api/v1 ✅ Aktif Belirlenmedi (v2 yayımlandıktan en az 12 ay sonra)
Sürümsüz (legacy) /api/ ⚠️ Uyumluluk için korunuyor, v1 ile birebir aynı davranır v2 yayımlandığında duyurulacak

Yeni entegrasyonlarda her zaman /api/v1 kullanın.

Versiyonlama kuralları

NotiPilot API'si Semantic Versioning (MAJOR.MINOR.PATCH) kullanır:

Değişiklik türü Örnek Sürüm Mobil uygulamada değişiklik gerekir mi?
PATCH Hata düzeltmesi, performans iyileştirmesi 1.0.0 → 1.0.1 Hayır
MINOR Yeni opsiyonel alan, yeni endpoint, yanıta yeni alan eklenmesi 1.0.x → 1.1.0 Hayır
MAJOR Alan kaldırma/yeniden adlandırma, zorunlu alan ekleme, davranış değişikliği 1.x → 2.0.0 Evet — yeni base path (/api/v2)

Geriye dönük uyumluluk taahhüdü (aynı MAJOR sürüm içinde):

  • Mevcut istek alanları kaldırılmaz, yeniden adlandırılmaz ve zorunlu hale getirilmez.
  • Yanıtlara yeni alanlar eklenebilir; istemciler bilinmeyen alanları yok saymalıdır.
  • Yeni error kodları eklenebilir; istemciler bilinmeyen kodları HTTP durum koduna göre ele almalıdır.
  • Yeni bir MAJOR sürüm yayımlandığında önceki MAJOR sürüm en az 12 ay desteklenmeye devam eder. Kullanımdan kaldırma, panel ve e-posta ile en az 6 ay önceden duyurulur.

Platform destek matrisi

NotiPilot API'si standart HTTPS + JSON kullandığı için HTTP isteği atabilen her istemci ile çalışır. Aşağıdaki tablo, rehberlerde anlatılan push bildirim akışının test edildiği ve desteklendiği sürümleri gösterir.

Platform Minimum Önerilen Push token yöntemi Rehber
Expo SDK 50 Güncel SDK expo-notifications → Expo Push Token expo.md
React Native (bare) RN 0.74 Güncel RN expo-notifications (önerilen) veya Firebase Messaging + token dönüşümü react-native.md
Flutter Flutter 3.22, Dart 3.4 Güncel stable firebase_messaging → Expo Push Token dönüşümü flutter.md
Ionic (Capacitor) Capacitor 6, Ionic 7 Güncel @capacitor/push-notifications → Expo Push Token dönüşümü ionic.md
Firebase (FCM) Android BoM 33, iOS SDK 10 Güncel FCM (Android) / APNs (iOS) token → Expo Push Token dönüşümü firebase.md
Shopify mağaza uygulamaları Storefront API 2025-01 Güncel API sürümü Uygulamanın teknolojisine göre shopify.md
Android (Java) Android 6.0 (API 23), Java 11 targetSdk 35+, Java 17 FCM → Expo Push Token dönüşümü android.md
Kotlin Android 6.0 (API 23), Kotlin 1.9 targetSdk 35+, Kotlin 2.x FCM → Expo Push Token dönüşümü kotlin.md
iOS (Objective-C) iOS 13.0, Xcode 15 iOS 15+ APNs → Expo Push Token dönüşümü ios.md
Swift iOS 13.0, Swift 5.9, Xcode 15 iOS 15+, Swift 6 APNs → Expo Push Token dönüşümü swift.md
Web / PWA – – API platform: "web" değerini kabul eder, ancak 1.0.0'da web push teslimatı desteklenmez –

Platforma özel notlar

  • Android 13+ (API 33): Bildirim göstermek için POST_NOTIFICATIONS çalışma zamanı izni zorunludur.
  • Android 8.0+ (API 26): Bildirimler kanal gerektirir. NotiPilot default kanal ID'sini kullanır.
  • iOS: Push bildirimleri için ücretli Apple Developer hesabı, Push Notifications capability'si ve fiziksel cihaz gerekir. Debug build'ler APNs sandbox, TestFlight/App Store build'leri production ortamını kullanır.
  • Expo Go: Uzaktan push bildirimleri Expo Go'da desteklenmez; development build kullanın.

Teslimat sağlayıcısı desteği (API 1.0.0)

provider Kayıt Segmentlerde görünür Bildirim teslimatı
expo ✅ ✅ ✅ Expo Push Service üzerinden
fcm ✅ ✅ ❌ Yol haritasında
apns ✅ ✅ ❌ Yol haritasında

Native uygulamalar, rehberlerde anlatılan yöntemle FCM/APNs token'ını Expo Push Token'a dönüştürerek bugün tam teslimat desteği alabilir.

Değişiklik günlüğü

1.0.0 — Eylül 2026

  • İlk kararlı sürüm.
  • /api/v1 base path'i ve GET /api/v1/version endpoint'i eklendi. Sürümsüz /api/* adresleri uyumluluk için korunuyor.
  • Standart hata formatı: success, error (makine tarafından okunabilir kod), message, errors (alan bazlı).
  • app_id artık NotiPilot'ta kayıtlı olmalı; aksi halde 404 unknown_app.
  • Alan doğrulamaları: tip ve uzunluk sınırları, attributes/tags limitleri.
  • attributes artık birleştirilerek güncellenir; gönderilmeyen anahtarlar silinmez. Anahtar silmek için null gönderin.
  • IP başına dakikada 300 istek rate limit (429 + Retry-After).
  • Her yanıtta X-NotiPilot-API-Version başlığı.