شرح صفوف ومحتوى الفقرة
يمنحك الجمع بين كلاسات JsonResource ودوال الخصائص الشرطية ومجموعات الترقيم عقد استجابة متيناً وقابلاً للصيانة في Laravel 12. يمكنك أيضاً إلحاق بيانات وصفية إضافية في أعلى الاستجابة مثل رقم إصدار الواجهة عبر دالة additional أو دالة with.
| وجه المقارنة الهندسي | الأسلوب المتزامن أو التقليدي | معيار Laravel 12 الحديث |
|---|---|---|
| تحويل بيانات النموذج | إرجاع كائنات Eloquent الخام مباشرة من دوال المتحكم | استخدام كلاسات JsonResource لفصل قاعدة البيانات عن مخرجات JSON |
| الحقول الحساسة والشرطية | حذف الحقول يدوياً من المصفوفة داخل كل دالة في المتحكم | استخدام $this->when و $this->mergeWhen التصريحية داخل دالة toArray |
| العلاقات الفرعية المتداخلة | استدعاء العلاقة مباشرة مما يسبب مشكلة استعلامات N+1 الخفية | حماية العلاقة بدالة $this->whenLoaded مع التحميل المسبق في المتحكم |
| القوائم المرقمة | بناء مصفوفات يدوية تفقد روابط الترقيم القياسية | استخدام PostResource::collection للحفاظ على مفاتيح data و links و meta |
PHP
return PostResource::collection(Post::paginate(15))
->additional([
'meta' => ['api_version' => '1.0'],
]);
خلاصة المعرفة ومحطة الانتقال
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
أتقنت في هذا الدرس حول «تنسيق استجابات الواجهات البرمجية عبر Eloquent API Resources» مفاهيم أهمية طبقة تحويل موارد API، وإنشاء كلاسات JsonResource للنماذج، وتنسيق مجموعات الموارد والترقيم وفق معايير Laravel 12 الحديثة.
الخطوة التالية والدرس القادم
انتقل الآن إلى الدرس التالي «مصادقة الرموز وحماية واجهات API عبر Laravel Sanctum» للبناء التراكمي على ما تعلمته.