Flutter ve Laravel API'yi birlikte tasarlamak
Mobil uygulama ile backend'i aynı anda geliştirirken API sözleşmesi, kimlik doğrulama ve hata yönetiminde dikkat ettiğim noktalar.
Bir mobil uygulamanın kalitesini çoğu zaman ekranlardan çok, arkasındaki API belirler. Flutter uygulaması ile Laravel API\'yi birlikte geliştirdiğim projelerde zamanla oturttuğum birkaç prensibi paylaşmak istiyorum.
1. Önce sözleşme, sonra kod
Ekranları tasarlamadan önce uygulamanın ihtiyaç duyacağı uç noktaları (endpoint) ve dönecekleri veri yapısını belirlerim. Bu “API sözleşmesi” sayesinde mobil ve backend tarafı birbirini beklemeden ilerleyebilir.
2. Tutarlı yanıt formatı
Her uç noktanın farklı bir yapı döndürmesi, mobil tarafta sayısız özel durum yaratır. Laravel API Resource sınıflarıyla tüm yanıtları tutarlı hale getiririm:
{
"data": { ... },
"message": "İşlem başarılı",
"meta": { "page": 1, "last_page": 4 }
}
Doğrulama hataları ise her zaman aynı formatta, alan bazlı mesajlarla döner; Flutter tarafında tek bir hata işleyici tüm formlara hizmet eder.
3. Kimlik doğrulama
Mobil uygulamalarda Laravel Sanctum ile token tabanlı kimlik doğrulama sade ve güvenilir bir çözümdür. Token\'ı cihazda güvenli depolamada (secure storage) tutar, 401 yanıtında kullanıcıyı oturum ekranına yönlendiren merkezi bir HTTP katmanı kurarım.
4. Uzun işler için kuyruk ve bildirim
Ödeme doğrulama, görsel işleme ya da dış servis çağrısı gibi uzun süren işleri API isteği içinde bekletmem. İşi kuyruğa atar, sonuç hazır olduğunda push bildirimi ile kullanıcıyı haberdar ederim.
5. Versiyonlama
Mağazadaki eski uygulama sürümleri yıllarca kullanılmaya devam edebilir. Bu yüzden API\'yi /api/v1 gibi versiyonlu tasarlar, geriye dönük uyumluluğu bozan değişiklikleri yeni sürümde yaparım.
Sonuç
Mobil uygulama ve backend\'i tek bir ürün gibi düşünmek, hem geliştirme hızını artırır hem de kullanıcıya daha tutarlı bir deneyim sunar.
Benzer bir projeniz mi var?
Fikrinizi konuşalım, size en uygun yol haritasını çıkaralım.