Laravel ile Ölçeklenebilir REST API Tasarımı
Bir Laravel developer'ın yüksek trafikli projeler için REST API tasarlarken uyguladığı prensipler: API Resource, versiyonlama, rate limiting, cache ve tutarlı hata yönetimi.
Yüksek trafikli bir sağlık platformunun (1.3M+ tıklama) backend'ini kurarken öğrendiğim en önemli ders şuydu: ölçeklenebilir bir API, gün sonunda verdiğin küçük mimari kararların toplamıdır. Bu yazıda bir Laravel developer olarak API tasarlarken uyguladığım prensipleri paylaşıyorum.
API Resource ile Tutarlı Çıktı
Modelini doğrudan JSON olarak döndürmek kısa vadede kolaydır ama uzun vadede kırılgandır. API Resource katmanı, veritabanı yapını dış dünyadan ayırır ve çıktının tutarlı kalmasını sağlar.
class DoctorResource extends JsonResource
{
public function toArray($request): array
{
return [
'id' => $this->id,
'name' => $this->full_name,
'specialty' => $this->specialty,
'available' => (bool) $this->is_available,
];
}
}Versiyonlama
API'ni /api/v1 gibi bir prefix altında versiyonla. Böylece ileride kırıcı değişiklikler yaparken mevcut istemcileri bozmadan /api/v2 çıkarabilirsin. Bu, üretimde çalışan bir Laravel developer için hayat kurtarır.
Rate Limiting ve Güvenlik
- throttle middleware ile istek sınırlama
- Sanctum veya Passport ile token tabanlı kimlik doğrulama
- Form Request ile katı doğrulama, asla ham girdiye güvenme
- CORS politikalarını dikkatli yapılandırma
Cache ve Kuyruk
Sık okunan ama nadiren değişen verileri Redis ile cache'le. Ağır işleri (mail gönderimi, rapor üretimi, dış API çağrıları) kuyruğa (queue) al ki HTTP yanıtın hızlı kalsın. Kullanıcının hissettiği hız, büyük ölçüde bu kararlardan gelir.
$doctors = Cache::remember('doctors.featured', 600, function () {
return Doctor::query()->where('featured', true)->get();
});Tutarlı Hata Yönetimi
Handler sınıfında hataları merkezî olarak yakala ve her zaman aynı biçimde JSON döndür. İstemci tarafındaki geliştirici, 200 ile 422 arasındaki farkı ve hata mesajının nerede olduğunu tahmin etmek zorunda kalmamalı.
Sonuç
Ölçeklenebilir bir Laravel API; tutarlı çıktı, sağlam güvenlik, akıllı cache ve öngörülebilir hata yönetiminin bir araya gelmesidir. Bu prensipleri baştan uygularsan, trafiğin katlandığında sistemi baştan yazmak zorunda kalmazsın.