1. مبتدئ

    ما هي API Resources في Laravel ولماذا تعد أفضل من إرجاع نماذج Eloquent كـ JSON مباشرة؟

    تعمل كطبقة تحويل (Transformation Layer) تفصل بنية جداول قاعدة البيانات عن استجابة الـ API، وتمنع تسريب الحقول الحساسة وتوحد تنسيق البيانات.

    اقرأ الشرح الكامل
  2. مبتدئ

    كيف تعزل منطق التحقق والصلاحيات في فئات Form Requests بـ Laravel؟

    عبر فئة مخصصة تنفذ authorize() للتحقق من صلاحية المستخدم، و rules() لقواعد التحقق، وترجع أخطاء التحقق برمز 422 تلقائياً دون وصولها للمتحكم.

    اقرأ الشرح الكامل
  3. متقدم

    ما هي أفضل استراتيجيات تطبيق ترقيم الإصدارات (API Versioning) في أنظمة Laravel؟

    إما عبر المسارات (URI Versioning مثل /api/v1/) وهي الأكثر شيوعاً ووضوحاً، أو عبر ترويسات الطلب (Header/Accept Versioning) للحفاظ على نظافة الروابط.

    اقرأ الشرح الكامل
  4. متوسط

    كيف تصمم محددات معدل الطلبات (Rate Limiting) المتقدمة باستخدام فئة RateLimiter في Laravel؟

    تُعرف محددات مخصصة في AppServiceProvider عبر RateLimiter::for() وتحدد عدد الطلبات في الدقيقة بحسب الـ IP أو المستخدم، وتطبق بـ throttle:name.

    اقرأ الشرح الكامل
  5. مبتدئ

    ما هي أفضل الممارسات لاختيار رموز حالة HTTP (Status Codes) في واجهات الـ RESTful API؟

    استخدام الرموز الدلالية بدقة: 200 للنجاح، 201 للإنشاء، 204 للحذف الناجح، 400 للمدخلات المشوهة، 401 لغياب المصادقة، 403 لغياب الصلاحية، و422 لفشل التحقق.

    اقرأ الشرح الكامل
  6. متقدم

    ما الفرق الجوهري بين LengthAwarePagination و CursorPagination في واجهات برمجة التطبيقات؟

    الـ LengthAware تعتمد على OFFSET وتستعلم COUNT() الإجمالي (وهي بطيئة في الجداول الكبيرة)، بينما الـ Cursor تعتمد على مؤشر مشفر (WHERE id > X) وسريعة وتناسب الـ Infinite Scroll.

    اقرأ الشرح الكامل
  7. متوسط

    كيف تصمم معالج أخطاء مركزي وموحد لاستجابات الـ API في Laravel؟

    بتخصيص معالجة الاستثناءات في bootstrap/app.php أو Handler عبر دالة renderable لتحويل أخطاء مثل ModelNotFoundException إلى ردود JSON منسقة.

    اقرأ الشرح الكامل
  8. متقدم

    كيف تطبق مفاتيح عدم التكرار (Idempotency Keys) في واجهات الدفع وإنشاء الطلبات بـ Laravel؟

    باستقبال ترويسة Idempotency-Key وتخزين استجابة الطلب الأول في Redis؛ فإذا تكرر نفس المفتاح تُعاد نفس الاستجابة المخزنة فوراً دون تكرار العملية المالية.

    اقرأ الشرح الكامل
  9. متوسط

    قارن بين حزمة Laravel Sanctum وحزمة Laravel Passport ومتى تختار كلاً منهما؟

    Sanctum حزمة خفيفة للمصادقة بالرموز الشخصية (API Tokens) والكوكي لتطبيقات SPA، بينما Passport خادم OAuth2 متكامل للمشاريع الضخمة التي تتطلب أذونات OAuth2 ومشاركة الهوية مع أطراف ثالثة.

    اقرأ الشرح الكامل
  10. مبتدئ

    كيف تضبط إعدادات CORS في ملف config/cors.php وتتجنب الأخطاء الشائعة مع تطبيقات SPA؟

    بتحديد النطاقات المسموحة بدقة في allowed_origins، وتفعيل supports_credentials إذا كان التطبيق يستخدم الكوكيز مع ترويسة Sanctum.

    اقرأ الشرح الكامل