REST API LARAVEL
أولاً: ما هي واجهة برمجة التطبيقات REST API؟
REST API LARAVEL
واجهة التطبيقات البرمجية application programming interface (API) تتبع في تصميمها مباديء representational state transfer(REST) وهي طريقة لنقل الحالة التمثيلية بين التطبيقات عبر الإنترنت و الحصول على المعلومات باستعمال قواعد معينة
وما يميز واجهة برمجة التطبيقات سهولة الاستخدام لاتباعها طرق http المعروفة مثل POST و GET وغير ذلك من الطرق ويتم نقل الحالة التمثيلية بين التطبيقات بتنسيقات مثل HTML أو JSON أو XML ويعتبر JSON الأكثرها استخداماً ولن نحتاج عند التعامل مع REST إلى لغة برمجة معينة حيث نستطيع تنفيذ موقع إلكتروني معين مثلاً مكتوب بلغة php التعامل مع تطبيق مصمم باستخدام flutter وهذا باستخدام API بين الموقع الإلكتروني والتطبيق حيث يقوم مبرمج الموقع بارسال API إلى مبرمج التطبيقات للتعامل معها داخل التطبيق بكل سهولة و التواصل والتعاون بين مبرمج الواجهة الأمامية والواجهة الخلفية
ثانياً: تحميل وتثبيت برنامج Postman
وسنشرح في هذه الدروس إن شاء الله استخدام API بواسطة إطار العمل Laravel Framework وبرنامج Postman
سنقوم بتحميل برنامج postman ثم نقوم بتثبيته والضغط على Workspaces حيث مساحة العمل الخاصة بنا
ثالثاً: إنشاء مشروع لارفيل
نفتح برنامج visual studio ونكتب في terminal السطر التالي
composer create-project laravel/laravel api_lessons
ثم نقوم بكتابة cd api_lessons للوصول إلى المشروع في terminal
ثم نقوم بكتابة . code
لفتح المشروع في نافذة جديدة
رابعاً: تشغيل المشروع
نكتب في terminal السطر التالي
php artisan serv
خامساً:إنشاء جداول قاعدة البيانات
نفتح ملف .env ونضع اسم لقاعدة البيانات واسم المستخدم وكلمة السر كالآتي
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=api_lessons
DB_USERNAME=root
DB_PASSWORD=
ثم نقوم بكتابة أمر
php artisan migrate
إنشاء جدول داخل قاعدة البيانات سأسمي الجدول lessons
php artisan make:migration create_lessons_table
وسننشيء بعض الحقول داخل الجدول
public function up(): void
{
Schema::create('lessons', function (Blueprint $table) {
$table->id();
$table->string('lesson_title');
$table->string('lesson_notes');
$table->timestamps();
});
}
ثم نقوم بكتابة أمر php artisan migrate
سادساً: إنشاء model & controller
سنقوم بكتابة الأمر التالي لإنشاء Lesson model
php artisan make:model Lesson
ثم نقوم بكتابة الأمر التالي لإنشاء LessonController
php artisan make:controller LessonController
سابعاً:إضافة بيانات عشوائية لقاعدة البيانات باستخدام seeder
سنقوم بإنشاء factory كالآتي
php artisan make:factory LessonFactory
وسوف أكتب الأكواد التالية لإضافة بيانات عشوائية في قاعدة البيانات
public function definition(): array
{
return [
'lesson_title'=>fake()->sentence(),
'lesson_notes'=>fake()->sentence(),
];
}
ثم نقوم بفتح ملف DatabaseSeeder.php ونضيف الكود التالي
public function run(): void
{
\App\Models\Lesson::factory(10)->create();
// \App\Models\User::factory()->create([
// 'name' => 'Test User',
// 'email' => 'test@example.com',
// ]);
}
ثم نقوم بكتابة أمر php artisan migrate –seed
فكما ترى تم إضافة البيانات إى جدول lessons الذي أنشأناه
ثامناً: عرض البيانات في المتصفح بالطريقة العادية
في هذه الطريقة سنقوم بعرض البيانات التي أضفناها لجدول lesson بالطريقة المعتادة عن طريق الدخول إلى LessonController وإضافة دالة index ثم استدعاء البيانات كالآتي
class LessonController extends Controller
{
public function index(){
return Lesson::all();
}
}
ثم نقوم بفتح ملف web.php ونكتب الكود التالي
Route::prefix('lessons')->group(function(){
Route::resource('/',LessonController::class);
});
ثم نذهب إلى المتصفح لعرض البيانات كالتالي
تاسعاً: عرض البيانات بواسطة REST API داخل postman في هيئة JSON
سنقوم بإنشاء مجلد داخل controller يسمى Api أو أي اسم آخر وننشي بداخله controller يسمى LessonController
ونكتب بداخله الكود التالي
class LessonController extends Controller
{
public function index(){
return Lesson::all();
}
}
كيف سنعرض الكود داخل postman؟
سوف نذهب الآن إلى ملف api.php داخل مجلد routes
ثم نكتب الكود التالي
Route::prefix('lessons')->group(function(){
Route::apiResource('/',LessonController::class);
});
سوف نفتح الآن برنامج postman ونضغط على علامة + لإنشاء new collection سنسميه Lessons كالآتي
ثم نضغط على الثلاثة نقاط التي أمام Lessons ونختار من القائمة Add request
ثم سنسميه get_all_lessons كالآتي
سوف نكتب المسار التالي للحصول على البيانات الموجودة داخل جدول lessons
http://127.0.0.1:8000/api/lessons
ونتأكد أننا نختار GET لهذا الرابط في postman
كالآتي
سوف نقوم الآن بالضغط على Send لعرض البيانات الموجودة داخل جدول lesson كالتالي
الآن تعلمنا في هذا الدرس الحصول على المعلومات من الجدول للتعامل معها بدون العرض في المتصفح وذلك باستخدام Rest api في برنامج postman على هيئة JSON
وسوف نتعلم المزيد في هذه الدورة في الدرس القادم إن شاء الله