واجهات برمجة التطبيقات أو بيئة برمجة التطبيقات (Application Programming Interface - API) هي عبارة عن "برنامج" غايته هو أن يوفر طريقة للتخاطب بين عدد من البرامج من خلال توفير قائمة من الوظائف المستقلة لتتيح للمطورين التواصل معها من خلال أي آلية آخرى.
ستقوم بهذه الدورة ببناء الواجهة الخاص بك وفهم كل ماتحتاجه من ناحية تنظيم البيانات وبنيتها وآلية بناء المشاريع والحماية لواجهتك بطرق مبسطة جدا.
معرفة مسبقة بلغة برمجة PHP
معرفة متوسطة بإطار العمل Laravel
المدة | الدروس (88) |
---|---|
المقدمة -
سنتعرف هنا على هذه المادة والمدرب
|
|
03:28 |
ماهي هذه المادة ومالمقصود بـ API؟
سنتعرف هنا على هذه المادة وطريقة التدريب ومالمقصود API وماهي فوائدها؟ |
تجهيز بيئة التطوير المحلية (اختياري) +
سنتعلم هنا كيفية تجهيز بيئة التطوير المحلية هذا القسم اختياري إذا كان لديك معرفة مسبقة بذلك.
|
|
02:30 |
ماهو Vagrant ولماذا سنستخدمه؟
لماذا نستخدم فاقرات في بيئة التطوير المحلية بدلا من غيره؟ |
02:48 |
كيف نحصل على Vagrant؟
جرعة إضافية
كيفية الحصول على فاقرانت وتثبيته |
06:18 |
إعداد vagrant للعمل
جرعة إضافية
كيفية إعداد فاقرات للعمل وتحميل نظام داخلي |
04:51 |
تجهيز خادم الويب
جرعة إضافية
تثبيت الحزم المطلوبة لتشغيل خادم ويب |
01:55 |
إعداد خادم اباتشي وتفعيل rewrite mod
جرعة إضافية
اعداد خادم اباتشي لاستخدام rewrite وذلك من اجل استخدام الروابط اللطيفة pretty urls |
03:28 |
اعدادات mysql server
جرعة إضافية
كيف تعد خادم قواعد البيانات للعمل |
02:27 |
تفعيل الاتصال عن بعد في mysql
جرعة إضافية
كيف نفعل الاتصال عن بعد بالخادم من أجل الوصول من خارج الخادم |
03:25 |
تثبيت مدير الحزم Composer
جرعة إضافية
كومبوزر هو مدير حزم php يتم تثبيت لارافيل من خلاله |
مقال |
تثبيت لارافيل باستخدام XAMPP على نظام ويندوز
جرعة إضافية
طريقة تثبيت لارافيل باستخدام XAMPP على نظام التشغيل ويندوز |
تثبيت لارافيل +
سنتعلم في هذا القسم كيفية تثبيت لارافيل وربطها مع قاعدة البيانات. يمكنك القفز للقسم التالي إذا كنت تعرف ذلك.
|
|
03:21 |
تثبيت واعداد لارافيل
سنتعرف في هذا الدرس على كيفية تثبيت لارافيل وضبط الإعدادات الأولية للعمل. |
03:12 |
ربط لارافيل بقاعدة البيانات MySQL
في هذا الدرس سنتعرف على كيفية ربط لارافيل بقاعدة البيانات من نوع MySQL. |
03:14 |
تثبيت واستخدام برنامج Postman
سنقوم بتثبيت والتعرف على برنامج postman وهو برنامج مخصص للتعامل مع API. |
03:53 |
اختبار الموجهات Routes مع Postman
سنقوم بهذا الدرس بعمل بعض الاختبارات البسيطة لكي نتعرف على آلية عمل Postman من خلال Routes |
التخطيط المسبق للمشروع +
سنبدا من هنا تخطيط المشروع الذي سنقوم ببناءه وهو نظام ﻹدارة المهام
|
|
05:23 |
مالذي سوف نقوم ببناءه؟
مهم
جرعة إضافية
في هذا الدرس سنتعرف على مكونات النظام الذي نريد بناءه والتخطيط المسبق له قبل البدء في التنفيذ |
توثيق المستخدمين من خلال Laravel Passport JWT +
سنتعرف في هذه السلسلة على كيفية توثيق المستخدمين باستخدام "Tokens" وتسمى المشفرات والتي توفرها لنا حزمة Passport التابعة للارافيل.
|
|
03:02 |
ماهي المشفرات Tokens؟
ستتعرف في هذا الدرس على المشفرات ولماذا تستخدم في واجهات برمجة التطبيقات APIs. |
04:35 |
تثبيت وتجهيز Laravel Passport
سنقوم بهذا الدرس بتثبيت Laravel Passport وتهيئته للعمل |
03:38 |
إنشاء موجه "Route" لتسجيل مستخدمين جدد
سنقوم بهذا الدرس بإنشاء موجه جديد لإنشاء حسابات جديدة في النظام |
04:18 |
التحقق من صحة البيانات باستخدام Validation
سنقوم الآن بالتحقق من صحة البيانات المقدمة قبل تسجيل المستخدمين |
03:57 |
إنشاء المستخدمين وتقديم مشفرات لهم Tokens
سنقوم بهذا الدرس بانشاء المستخدم ثم تقديم Token خاصة به |
03:14 |
إنشاء موجه Route تسجيل الدخول
بهذا الدرس سنقوم بإنشاء موجه لتسجيل دخول المستخدم مع التحقق من صحة البيانات المرسلة |
01:53 |
منح المستخدم Token بعد تسجيل الدخول
بعد عملية تسجيل الدخول الصحيحة سنتعلم كيفية منح المستخدم Token جديدة |
04:20 |
اختبار المشفرات Tokens
سنتعرف في هذا الدرس عن قرب على المشفرات ونقوم باختبار الموجهات معها بحيث نستطيع منع والسماح للمستخدمين بناء عليها |
02:32 |
تجميع الموجهات Routes Groups
سنقوم بهذا الدرس بالتعرف على كيفية جمع الموجهات Routes بحيث يمكن تطبيق برمجيات وسيطة Middlewares عليها وأن تأخذ سابقة في الروابط |
04:22 |
تغيير كلمة المرور: التحقق من كلمة المرور الحالية
سنقوم بهذا الدرس بالتعرف على كيفية تغيير كلمة المرور بشرط أن تكون كلمة المرور الحالية صحيحة |
04:07 |
تغيير كلمة المرور: تحديث كلمة المرور الجديدة
بعد أن تحققنا من كلمة المرور في الدرس الماضي، سنقوم الآن بتحديث كلمة المرور للمستخدم |
05:50 |
تحديث بيانات المستخدم
تمرين
سنتعلم في هذا الدرس كيفية تحديث بيانات المستخدم ، يوجد تحدي لك في الداخل! |
02:22 |
تحديث بيانات المستخدم
تمرين
في هذا الدرس سنقوم بحل التحدي وهو "كيف يمكن لنا أن نشترط أن يكون البريد فريد unique ولكن مع استثناء صاحب الحساب؟" |
الإجراءات على إدارة الأقسام +
سنتعلم في السلسلة القادمة من الدروس عدد من المفاهيم الهامة في APIs ومنها كيفية عمل resource لكل موجه "route" وكيفية التعامل مع طرق الطلب PATCH, PUT في الموجهات وأيضا كيف نقوم بحماية مدخل معين
|
|
02:14 |
التخطيط المسبق لبناء أقسام المهام
جرعة إضافية
سنقوم بهذا الدرس بعمل خطة لبناء الإجراءات التي ستتم على الأقسام وفهي العلاقات بينها وبين أجزاء النظام وكذلك تصميم قاعدة البيانات |
04:03 |
إنشاء جدول الأقسام في قاعدة البيانات
سنقوم بهذا الدرس بإنشاء Migration "ترحيل البيانات" الخاص بجدول الأقسام |
03:51 |
ضبط العلاقات بين Category & User
سنقوم بهذا الدرس بضبط العلاقات مابين المستخدم والقسم الخاص به |
04:06 |
إنشاء موجهات الأقسام والبرمجيات الوسيطة Routes & Middlewares
سنقوم بهذا الدرس بإنشاء Routes خاصة بالأحداث التي سنجريها على الأقسام وكذلك تطبيق middleware الحماية الخاص بـ API |
05:02 |
إنشاء الأقسام
تمرين
سنتعلم بهذا الدرس كيفية إنشاء الأقسام من خلال المتحكم Controller والموجه Route |
05:40 |
التعامل مع PUT & PATCH في الموجهات وارسال البيانات
سنتعلم في هذا الدرس كيفية التعامل مع طريقة الطلب PUT و PATCH من خلال إرسال البيانات بأكثر من طريقة |
05:32 |
تحديث الأقسام Update
سنتعلم في هذا الدرس كيفية عمل تحديث لمدخلات الأقسام في قاعدة البيانات وكيفية حماية الموارد Resources |
01:55 |
حذف الأقسام Delete
سنقوم بهذا الدرس بتعلم كيفية حذف الأقسام من قاعدة البيانات باستخدم طريقة الطلب DELETE |
02:33 |
عرض جميع الأقسام
بهذا الدرس سنتعلم كيفية عرض جميع الأقسام المسجلة في قاعدة البيانات |
03:31 |
الحذف اللين Soft Delete
ستتعلم في هذا الدرس ماهو الحذف اللين Soft Delete ولماذا يستخدم وكيفية القيام به |
04:04 |
استعادة مدخل حذوف (القسم) Restore
سنقوم الآن باستعادة القسم الذي قمنا بحذفه! |
04:33 |
الحذف النهائي (للقسم) Force Delete
الآن سنقوم بعملية الحذف النهائي للبيانات وهي العملية التي لا يمكن التراجع عنها |
الإجراءات على إدارة المهام +
الآن سوف نتعلم كيفية إدارة عملية المهام وإجراء التحقق من صلاحيات المستخدمين من ناحية القدرة على الحفظ في تصنيفات و القدرة على التعديل والحذف كما سنتعلم طرق جديدة للتحقق من البيانات قبل السماح
|
|
06:15 |
التخطيط المسبق لبناء المهام
سنقوم بهذا الدرس بالتخطيط المسبق لإدارة المهام من ناحية قاعدة البيانات والموجهات |
05:59 |
إنشاء جدول المهام والعلاقات بين الجداول
سنقوم بهذا الدرس بإنشاء جدول المهام باستخدام laravel migration وأيضا ربط العلاقات مابين Models |
02:55 |
إنشاء Routes & Controller للمهام
سنقوم بهذا الدرس بإنشاء الموجهات "routes" و المتحكم "controller" الخاص بالمهام |
05:05 |
التحقق من صحة بيانات المهام Validation
تمرين
سنتعلم في هذا الدرس طريقة التحقق من البيانات علاوة على كيفية التحقق و وضع الشروط على حقول التاريخ |
05:32 |
التحقق من ملكية المدخلات ثم حفظ مهمة جديدة
تمرين
سنقوم بهذا الدرس بحل التحدي السابق وهو كيفية التحقق من ملكية المدخلات الموجودة بقاعدة البيانات قبل إدخال بيانات المهام |
05:45 |
تحديث مدخلات المهام مع التحقق من ملكية المدخلات
سنقوم بهذا الدرس بتحديث بيانات المهام المدخلة مع التحقق من أن المستخدم الذي يحاول التعديل يمتلك هذه المهمة |
03:24 |
حذف المهام Delete
سنقوم بهذا الدرس أيضا بحذف المهام مع التحقق من ملكية المدخلات قبل اتمام عملية الحذف |
04:32 |
الحذف النهائي واستعادة المحذوف Force Delete & Restore
سنقوم بهذا الدرس بعملية الحذف النهائي للمدخلات واستعادتها |
الموارد API Resources +
سنتعلم في هذا الجزء من المادة ماهي الموارد Resources وكيفية التعامل معها واخراج البيانات بناء على قوالب نقوم بتجهيزها
|
|
06:00 |
ماهي الموارد API Resources؟
سنتعلم الآن ماهي الموارد ولماذا تستخدم وماهي الفائدة والغاية النهائية التي سنصل لها بعد استخدامها في APIs |
04:44 |
إنشاء مورد جديد Resource
تمرين
سنقوم بهذا الدرس بإنشاء مورد جديد للبيانات الخاصة بالتصنيفات الموجودة في النظام ونحاول فهم آلية عمله |
02:22 |
استخدام الموارد مع مدخل واحد وعرض العلاقات
تمرين
سنتعلم في هذا الدرس كيفية استخدام الموارد مع مدخل واحد وأيضا كيف يمكن أن نقوم بعرض علاقة معينة من خلال Resource |
05:26 |
تحميل العلاقات مع الموارد شرطيا Conditional Load
سنتعلم في هذا الدرس أهمية تحميل العلاقة مع الموارد بشكل شرطي والذي يفيد في تحسين الأداء في قاعدة البيانات |
06:30 |
إنشاء مورد المهام Tasks Resource
تمرين
سنقوم بهذا الدرس بإنشاء مورد للمهام Tasks Resource بحيث نقوم باستخدامه كقالب لعرضها لاحقا |
03:00 |
استخدام مورد داخل مورد اخر
تمرين
سنقوم بهذا الدرس بحل التحدي السابق وهو كيفية وضع مورد بداخل مورد آخر Resource within a resource |
04:25 |
Pagination والفرق بين load و with
سنتعلم في هذا الدرس كيفية استخدام Pagination وهو طريقة عرض البيانات بشكل جزئي في كل صفحة "رابط" ومالفرق بين with و load مع العلاقات |
توليد البيانات مع Seeds & Factories +
سنتعلم في هذا القسم طريقة توليد البيانات من أجل اختبار قاعدة البيانات و API التي نعمل عليها
|
|
04:35 |
ماهي Seeds & Factories؟
سنتعرف في هذا الدرس على Seeds & Factories مالفرق بينهما ولماذا تستخدم |
04:41 |
إنشاء ملف لزراعة البيانات Seed
سنقوم بهذا الدرس بالتعرف على كيفية إنشاء ملف seed لزراعة البيانات في الجداول |
04:51 |
التعامل مع Factories
تمرين
سنقوم الآن بالتعامل مع Factories والتي تقوم بتوليد بيانات عشوائية في الجداول التي نحددها |
02:24 |
تشغيل Factory في ملف seed
تمرين
سنقوم الآن بحل التحدي السابق وهو كيفية تشغيل ملف Factory داخل seed class |
07:09 |
توليد البيانات مع العلاقات
سنقوم بهذا الدرس بتعلم كيفية توليد بيانات مع العلاقات بحيث يمكن زراعة بيانات متعددة داخل علاقات أخرى في قاعدة البيانات |
الإجراءات على نظام التعليقات +
في القسم التالي سنقوم ببرمجة نظام التعليقات الذي سيتم على المهام، هل أنت جاهز؟
|
|
02:01 |
التخطيط المسبق لبناء التعليقات
تمرين
أيها المبرمج! سنقوم الآن بالتخطيط لبناء نظام التعليقات وعليك ان تقوم بالتحدي الموجود في الدرس. |
07:52 |
إنشاء الجدول والعلاقات والتعرف على العلاقة hasManyThrough
سنقوم بهذا الدرس ببناء Comment Model وإنشاء جدول البيانات وضبط العلاقات مع الجداول المرتبطة كما سنتعرف على علاقة من نوع مختلف تسمى hasManyThrough |
02:56 |
إنشاء الموجهات والمتحكم الخاص بالتعليقات Routes & Controller
سنقوم الآن بإنشاء الموجهات الخاصة بالتعليقات وربطها مع المتحكم الخاص بها |
07:05 |
حفظ التعليقات مع التحقق من البيانات والتحقق الأمني للمستخدم
سنقوم بهذا الدرس بحفظ التعليقات على المهام مع التحقق من صحة البيانات والتأكد من صلاحيات المستخدمين قبل حفظ التعليقات على مهام قد لا يمتلكونها |
04:54 |
تحديث بيانات التعليقات Update
الآن سنقوم بتحديث بيانات التعليقات بعد أن تم حفظها |
02:26 |
حذف التعليقات Delete
تمرين
سنقوم بهذا الدرس بحذف التعليقات من النظام كما يوجد تحدي بانتظارك! |
03:43 |
عرض التعليقات مع المهام من خلال Resource
تمرين
سنقوم الآن بعرض التعليقات على المهام باستخدام Resource وهو التحدي السابق |
الإجراءات على نظام رفع وإدارة الملفات +
سنتعلم في القسم كيفية رفع وإرفاق الملفات مع المهام التي قمنا بها وكذلك كيفية التحقق من صحة الملفات المرفوعة بناء على شروط نقوم بوضعها قبل رفعها
|
|
04:36 |
التخطيط المسبق لبناء نظام تخزين الملفات
تمرين
سنقوم بهذا الدرس بالتخطيط المسبق لبناء نظام تخزين الملفات |
04:26 |
إنشاء File Model وجدول البيانات وضبط العلاقات
سنقوم الآن بإنشاء جدول لتخزين الملفات ومساراتها وضبط العلاقة بينه وبين المستخدم والمهام |
03:09 |
إنشاء الموجهات والمتحكم الخاص بالملفات Routes & Controller
تمرين
سنقوم الآن بإنشاء الموجهات والمتحكم الخاص برفع الملفات وتخزينها في نظام الملفات وجدول البيانات |
02:35 |
التحقق من صحة بيانات الملفات المرفوعة
تمرين
سنقوم بهذا الدرس بالتحقق من صحة بيانات الملفات المرفوعة من ناحية النوع والحجم |
03:57 |
توليد أسماء فريدة Unique للملفات ثم رفعها
سنقوم بهذا الدرس بالتعرف على إحدى طرق لارافيل في توليد أسماء فريدة Unique names للملفات ثم رفعها |
03:18 |
تخزين أسماء الملفات في قاعدة البيانات
سنقوم الآن بتخزين أسماء الملفات في قاعدة البيانات بحيث يمكن جلبها مع كل مهمة متصله بها |
02:08 |
ربط مسار تخزين الملفات بالمسار العام للمشروع
سنقوم بهذا الدرس بربط مجلد التخزين الرئيسي في المشروع بالمجلد لارافيل العام public بحيث يمكن الوصول للملفات المرفوعة من خلال روابطها |
03:40 |
إنشاء خصائص إضافية في المودل Model Accessors
سنتعرف في هذا الدرس على طريقة إضافة Model Accessors في النظام بحيث يمكننا استخدامها وتوليد خصائص إضافية مع كل مدخل في قاعدة البيانات |
04:21 |
إنشاء خاصية رابط التحميل File Url Accessor
سنقوم بهذا الدرس بإنشاء خاصية تتيح لنا الوصول للرابط الكامل للملفات من خلال accessors الخاصة بالملفات |
02:49 |
إنشاء مورد للملفات File Resource
الآن سنقوم بإنشاء مورد جديد للملفات File Resource لاستخدامه لعرض الملفات مع كل مهمة |
03:13 |
حذف ملف من النظام
سنقوم بهذا الدرس بالتعرف على طريقة حذف ملف معين من النظام |
02:34 |
حذف جميع ملفات المهام بعد حذفها من قاعدة البيانات
سنقوم بهذا الدرس بحذف كل الملفات مع المهام بعد حذفها من قاعدة البيانات لكي يصبح لدينا توفير لمساحة التخزين في النظام |
التعامل مع البريد الإلكتروني +
سنتعلم في الدروس القادمة كيفية التعامل مع البريد الإلكتروني بحيث يصبح لدينا إمكانية إرسال بريد إلكترونية من خلال API
|
|
02:16 |
مالذي سوف نقوم به مع البريد الإلكتروني؟
سنتعرف بهذا الدرس على مالذي سنقوم به في السلسلة القادمة من الدروس باستخدام البريد الإلكتروني |
04:13 |
ضبط واختبار البريد الإلكتروني
في هذا الدرس سنقوم بالتعرف على خدمة تساعدك في التعامل مع البريد الإلكتروني وكيف نقوم بضبطه في المشروع واختباره |
04:40 |
إرسال بريد إلكتروني عند حذف المهام
سنقوم بهذا الدرس بإرسال بريد إلكتروني للمستخدم في حال تم حذف المهمة الخاصة به بشكل جذري من النظام |
[أمني] حماية API بواسطة Rate Limiting +
سنقوم بهذه السلسلة بالتعرف على Rate Limiting وهو الجزء المسؤول عن الحد من الطلبات المتكررة على النظام بحيث لا يتم استهلاكه والتسبب ببطئ أو تعطيل النظام
|
|
02:42 |
ماهو Rate Limiting؟
Security
سنتعرف بهذا الدرس على Rate Limiting مع مثال على ذلك |
01:31 |
التحكم بالإعدادات الافتراضية لـ Rate Limiting
Security
لارافيل محمية بشكل افتراضي بواسطة Rate Limits وسنتعرف في هذا الدرس على كيفية التعامل مع الإعدادات الافتراضية لذلك |
01:12 |
تطبيق Rate Limit على الموجهات
Security
سنقوم بهذا الدرس بتطبيق rate limit على الموجهات الخاصة بالنظام |
02:10 |
تطبيق Rate Limit في المتحكمات وكيفية تخصيصه
Security
سنتعرف بهذا الدرس على كيفية تطبيق "حد الاستخدامات" على المتحكات وكيف يمكننا تخصيصه لعمل استثناءات في حال لزم الأمر |
(إهداء لك) معلومات إضافية ونصائح +
أيها المبرمج! بعد أن قمت بهذا العمل الرائع. سأقوم بإهداء بعض المعلومات والنصائح لك في هذا القسم
|
|
01:52 |
انتهيت؟ مالمزيد؟
جرعة إضافية
في هذا الدرس سأخبرك عن مصدر المعلومات الذي يمكنك من خلاله الاستزادة وبعض النصائح التي ستساعدك بالإنطلاق نحو القمة |
مقال |
تحميل مشروعنا Tasks API
ستجد في هذا الدرس مشروعنا الذي قمنا ببناءه في حال اردت الاستفادة منه فهو هدية مني إليك. |
عرض الكل + إخفاء الكل - |
بناء واجهات برمجة التطبيقات REST APIs باستخدام JSON Web Tokens والسماح للتطبيقات بالتواصل والتعامل معها باستخدم لارافيل
مدرب في فلكس كورسز وقائد فريق التطوير والبرمجة في هذا الموقع الرائع. إذا كنت ترغب بمعرفة المزيد عني يمكنك زيارة موقعي الشخصي.
المزيد ...