اذهب إلى المحتوى
  • 0

الفرق بين resource و apiResource في Laravel

يوسف بن الشيخ

السؤال

Recommended Posts

  • 0

  بالنسبة لل apiResource :

  • يتم إنشاؤها عبر الأمر التالي :
php artisan make:controller ExampleController --api
  • عند إنشاء controller يكون يحتوي على 5 دوال فقط وهي : 

 index,  store, show, update  ,destroy

  • ;('Route::apiResource('resources','ResourceController تنشئ فقط 5 مسارات routes وهي:

 routes for index, store, show, update and destroy

  • أي أنها تتعامل فقط مع  API

 

بالنسبة لل Resource :

  • يتم إنشاؤها عبر الأمر التالي :
php artisan make:controller ExampleController --resource
  • عند إنشاء controller يكون يحتوي على 7 دوال , دالتين إضافيتين للapiResource   وهي : create و edit 
  • ;('Route::resource('resources','ResourceController تنشئ مسارين 2 routes جديدين

وهما route create وedit route

  • فهي لا تنشئ محتوى لل API
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

 Api resources هي إضافة ل laravel تم تقديمها في laravel 5.5 تستخدم api resources في بناء rest apis. قبل تقديم api resources كُنَّا نستخدم packages مثل  Fractal  كتطبقة انتقالية لإنشاء استجابات للواجهات البرمجية التي تعطي مخرجات من نوع JSON.

إذًا   API resources تقدم طريقة سهلة لتحول ال model الخاص بنا إلى استجابات Json. فهي تعمل كطبقة إنتقالية بين ال Eloquent models و استجابات Json المُخرجة بواسطة ال api.

Api resources مكونة من كينونتان و هما:

  • resource class

و هو يمثل model وحيد يحتاج إلى التحويل إلى json structure.

  • resource collection

 و هو يمثل مجموعة من ال models وحيد يحتاج إلى التحويل إلى json structure.

و كلاهما يمكن صنعه باستخدام artisan commands:

 

 // create a resource class
    $ php artisan make:resource UserResource

 // باستخدام إحدى الطريقتين التاليتين resource collection صناعة 
    $ php artisan make:resource Users --collection
    $ php artisan make:resource UserCollection

يمكنك تعلم المزيد عن api resources من التوثيق الخاص بهم.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
  1. resource :  تستخدم في ال route/web.php وهو الملف الخاص بإنشاء الroutes  التي تستخدم في موقعك .

       طريقة إستخدامها  : تكتب في ملفweb.php    هذا الكود 

Route::resource('photos', PhotoController::class)

      ثم  قم بتنفيذ هذا الكود   في cmd  داخل المشروع الخاص بك 

php artisan route:list

   ستظهر لك قائمة الroutes  الموجودة في مشروعك ,  ستجد ل PhotoController أنه تم إنشاء 7 routes   كما فى الصورة المرفقة 5f64da64e43f9_.PNG.5d230b029b6431056298b098e19161da.PNG

أي أن الresourse تستخدم لإنشاء  سبعة مسارات  ويكون ال prefix  هو photos   ويكون هناك  سبعة من   actions   التي    هي (   index, store, show, update , destroy  edit ,create )  ,وهي الfunctions  التي يجب أن تكون في  كلاس  PhotoController.

 

2.apiResource 

  تستخدم  في ملف routes/api.php  وهو الملف الذي يستخدم لإنشاء المسارات الخاصة بال api.

   طريقة إستخدامها  : تكتب في ملف api.php    هذا الكود 

Route::apiResource('photos', PhotoController::class);

 

    ثم  قم بتنفيذ هذا الكود   في cmd  داخل المشروع الخاص بك 

php artisan route:list

 ستجد أنه تم إنشاء   خمسة مسارات ل خمسة actions والتي هي( index, store, show, update destroy) وهي الfunctions التي تكون  داخل ال PhotoController كلاس الخاص ب الapi 

تم التعديل في بواسطة Omar Haddad2
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...