3. Bölüm Laravel’deki görünüm katmanı serisinin bu kısmında. 1. bölüm: Blade. 2. bölüm: Livewire. Şimdi, son bölüm: Inertia.
Kendi frontend’iniz için bir REST API oluşturduğunuz oldu mu?
Kendi frontend’iniz için bir REST API oluşturduğunuz oldu mu?
Bazı durumları gözünüzde canlandırın.
Vue (ya da React) kullanmak istediniz. O yüzden Laravel’de bir API oluşturdunuz: /api ile rotalar, JSON döndüren controller’lar, kimlik doğrulaması için Sanctum, formatlama için resources. Diğer tarafta, bu verileri axios ile kullanan ayrı bir SPA projesi var, token yönetimini yapıyor, 401 hatalarını işliyor ve durum oluşturuyor.
Ve komik olan detay: bu API’nin yalnızca bir müşterisi var. Kendi frontend’iniz. Kendinizle konuşmak için tamamen kamuya açık bir sözleşme oluşturdunuz.
Inertia bu durumu göz önünde bulunduruyor ve “ya tüm API’yi atlasaydık?” diye soruyor.
Inertia ne yapar (ve neden bu kadar insanı karıştırır)?
Inertia ne yapar (ve neden bu kadar insanı karıştırır)?
Inertia bir framework değil. O bir köprü. Laravel controller’ınızın bir Vue/React bileşeni döndürmesine izin veriyor — verileri doğrudan props olarak gönderiyor, arada API olmadan.
public function index()
{
return Inertia::render('Produtos/Index', [
'produtos' => Produto::paginate(10),
]);
}
Frontend tarafında, bu props olarak bileşeninize ulaşır:
export default function Index({ produtos }) {
return ProductTable data={produtos} />;
}
Dikkat edin ki burada hiçbir şey yok: hiç /api rotası, hiç axios.get, el ile JSON oluşturan bir resource yok, yönetilecek token yok. İlk yükleme normal HTML olarak geliyor; sonraki gezinmelerde Inertia yeni props’ları yalnızca XHR ile değiştiriyor. Gerçekten React/Vue kullanıyorsunuz, ancak bir Laravel uygulaması gibi yönlendirme ve kimlik doğrulama işlemini devam ettiriyorsunuz — web middleware, oturum ve her şeyle.
Bu yüzden kafa karıştırıyor: ne Blade (gerçek bir frontend bileşeni var) ne de klasik bir SPA (API yok). Ortada bir denge var — ve bu denge her zaman “Ne yani, bu ne?” sorusunu doğuruyor.
Inertia hangi durumlarda iyi bir seçimdir?
Inertia hangi durumlarda iyi bir seçimdir?
- Zengin etkileşimli iç uygulama: Vue/React konusunda ısınmış ve ustalaşmış bir ekiple.
- Gerçek frontend bileşenleri (ekosistem, kütüphaneler, reaktivite) istersiniz ama kendiniz için ayrı bir API tutmak istemezsiniz.
- Tek bir müşteri: frontend webdir ve sadece odur. Mobil uygulama yok, aynı verilere erişen ortak partner yok.
Bu senaryoda, Inertia size iki dünyanın en iyisini sunar: “view döndüren controller” üretkenliği ile modern bir frontend gücü. Ve kimse dışında kullanmadığınız API’yi tutarken kaybedeceğiniz birçok zamanı size kazandırır.
Inertia NEREDE uygun DEĞİL? (bu bir tuzak)
Inertia NEREDE uygun DEĞİL? (bu bir tuzak)
İşte gelecekte sizi yakalayabilecek bir tuzak: Inertia gerçek bir API değildir. Gönderdiği props’lar herhangi bir şeyle kullanılmak üzere tasarlanmış bir sözleşme değildir — o bileşene, o ekranda uygulana dır.
Yani, yarın bir mobil uygulama, bir partnerin entegrasyonu, bir webhook veya ikinci bir frontend ortaya çıkarsa… Inertia size yardımcı olmaz. Gerçek bir REST API oluşturmanız gerekecek, baştan ve daha fazla çaba ile.
Yani, seçim “Inertia API’den daha iyidir” değil. “Verilerinizi almak için birden fazla müşteri var mı?” Eğer evet ise, API kendi maliyetini karşılar ve Inertia onu değiştiremez. Hayır ise, API bir gereklilik olmuştur ve Inertia sizi ondan kurtarır.
Seriyi kapatma: sizin durumunuz nedir?
Seriyi kapatma: sizin durumunuz nedir?
Üç yazıdan sonra, kararı dürüst bir ölçekle özetlemek mümkündür:
- Blade — ekran içeriktir, form ve bağlantı. SEO önemlidir. Her şeyden basitlik. Buradan başlayın.
- Livewire — reaktivite gerekiyor, ekip backend ağırlıklı ve JS istemiyor. CRUD ve iç panel. Blade + Alpine yeterli olmadığında buraya geçin.
- Inertia — gerçek React/Vue bileşenleri istiyorsunuz, ekip JS’de hakim ve web verilerin tek müşterisi. Etkileşim ürünün kalbidir, buraya geçin.
“En iyisi yok”. Doğru olan sizin bağlamınıza göre — en pahalı hata bir hevesle değil, ihtiyaçla seçim yapmaktır.
Sayfayı kapatmadan önce
Sayfayı kapatmadan önce
Sondaki soru: son projenizdeki o Laravel REST API’sinin — gerçekte kaç müşterisi var sadece kendi frontend’iniz dışında?
Eğer yanıt “sadece o” ise, belki de Inertia (ya da Livewire) size haftalar kazandırabilir. Yorumlarda hangi üçlü görünüm yığınını kullandığınızı bana anlatın ve yukarıdaki ölçek ile hemfikir misiniz? 🔥
Bu seri kafanızı organize etmenize yardımcı olduysa izlemeyi unutmayın: her hafta Laravel hakkında hype veya abartı olmadan yazıyorum.
Kaynak: Orijinal Makale


