Laravel ile API geliştiriyorsanız, junior ve senior geliştiricileri ayıran bazı kalıplar vardır.
1. Daima Form Request’leri Kullanın
1. Daima Form Request’leri Kullanın
Validation işlemlerini controller’larda yapmaktan kaçının. Bu yöntem dağınık ve test edilmesi zor bir yaklaşımdır.
class StoreOrderRequest extends FormRequest
{
public function rules(): array
{
return [
'product_id' => 'required|exists:products,id',
'quantity' => 'required|integer|min:1|max:100',
];
}
}
2. API Kaynaklarını Cevap Formatlamada Kullanın
2. API Kaynaklarını Cevap Formatlamada Kullanın
Eloquent modellerini doğrudan döndürmekten kaçının.
class OrderResource extends JsonResource
{
public function toArray($request): array
{
return [
'id' => $this->id,
'total' => number_format($this->total, 2),
'status' => $this->status,
'items' => OrderItemResource::collection($this->items),
];
}
}
3. Doğru Rate Limiting Uygulayın
3. Doğru Rate Limiting Uygulayın
Route::middleware('throttle:60,1')->group(function () {
Route::apiResource('orders', OrderController::class);
});
4. Agresif Önbellekleme Yapın
4. Agresif Önbellekleme Yapın
$products = Cache::tags(['products'])->remember(
'products-page-' . $page,
3600,
fn() => Product::paginate(20)
);
5. Ağır İşlemler İçin Job’ları Kullanın
5. Ağır İşlemler İçin Job’ları Kullanın
ProcessOrder::dispatch($order)
->onQueue('orders')
->delay(now()->addMinutes(5));
6. Uygun Hata Yönetimi
6. Uygun Hata Yönetimi
$this->renderable(function (NotFoundHttpException $e, Request $request) {
if ($request->expectsJson()) {
return response()->json([
'error' => 'Resource not found',
], 404);
}
});
7. API Token’ları İçin Sanctum Kullanın
7. API Token’ları İçin Sanctum Kullanın
$token = $user->createToken(, [, ]);
8. Veritabanı Transaksiyonları
8. Veritabanı Transaksiyonları
DB::transaction(function () use ($orderData, $items) {
$order = Order::create($orderData);
foreach ($items as $item) {
$order->items()->create($item);
}
});
Laravel ve e-ticaret ipuçları için takipte kalın.
Kaynak: Orijinal Makale


