1. Veritabanı Sorgularınızı Optimize Edin
İpucu: Laravel’in `Eloquent` ORM'ini kullanırken, ilişkili modelleri `lazy loading` yerine `eager loading` ile yüklemeyi tercih edin. Böylece veritabanı sorgularının sayısını azaltabilir ve uygulamanızın daha hızlı çalışmasını sağlayabilirsiniz.
```php
$posts = Post::with('comments')->get();
```
Bu kod, her bir post için yorumları tek bir sorguda getirir, böylece gereksiz sorgu tekrarlarının önüne geçer.
2. Cache Kullanımını Artırın
İpucu: Veritabanı sorgularını, belirli bir süre için cache'leyerek her seferinde sorgu yapılmasını engelleyebilirsiniz.
```php
$users = Cache::remember('users', 60, function () {
return DB::table('users')->get();
});
```
Bu kod, `users` verisini 60 dakika boyunca önbelleğe alır ve her API çağrısında yeniden sorgu yapmaz.
3. API Yanıtlarını Optimize Edin
İpucu: Laravel’in `Resource` sınıflarını kullanarak sadece gerekli verileri döndürün.
```php
use App\Http\Resources\UserResource;
public function show($id)
{
return new UserResource(User::findOrFail($id));
}
```
`UserResource` sınıfı, sadece ihtiyaç duyulan alanları döndürür ve gereksiz verinin taşınmasını engeller.
4. Veritabanı İndekslerini Kullanmayı Unutmayın
İpucu: Laravel migrations ile veritabanınızda uygun alanlara indeks ekleyin.
```php
Schema::table('users', function (Blueprint $table) {
$table->index('email');
});
```
Bu, `email` sütununa hızlı arama yapmak için bir indeks ekler.
5. API Rate Limiting (API Hız Sınırlaması) Yapın
İpucu: `ThrottleRequests` middleware'i ile API çağrılarınızı sınırlayarak, kötü niyetli saldırılara karşı koruma sağlayabilirsiniz.
```php
Route::middleware('throttle:60,1')->get('/user', function () {
return User::all();
});
```
Bu kod, kullanıcı başına dakikada 60 isteği sınırlar, böylece gereksiz yükün önüne geçilir.
6. Asenkron İşlemler Kullanın
İpucu: Laravel Queue sistemi ile zaman alıcı işlemleri arka planda çalıştırarak, API yanıt sürelerinizi iyileştirebilirsiniz.
```php
use App\Jobs\SendEmail;
public function sendEmail()
{
SendEmail::dispatch($user);
}
```
Bu kod, e-posta gönderme işlemini arka planda çalıştırır ve API’nin yanıt süresi kısalır.
7. API Caching ile Hızlı Yanıtlar Alın
İpucu: Caching ile API yanıtlarını önbelleğe alarak, her istekte veritabanı sorgusu yapmaktan kaçının.
```php
Route::get('posts', function () {
return Cache::remember('posts', 60, function () {
return Post::all();
});
});
```
Bu, `posts` verisini 60 dakika boyunca önbelleğe alır ve her API çağrısında veritabanı sorgusu yapılmaz.
---