بسم الله الرحمن الرحيم

    إن تطوير مواقع الأنترنت كان يعتمد  منذ 10 سنوات على البرمجة للموقع فقط و التعامل مع المحتوى داخل الموقع و كيفية ظهورة بطريقة صحيحة أو التعامل مع  بعض المعادلات التى لا تخرج عن سياق المتصفحات ( المواقع الأخبارية، المواقع الشخصية، المنتديات، مواقع التجارة اﻹليكترونية و ..... )،  و المواقع الكبيرة فقط هى التى كانت تتعامل مع برامج خارجية أو تمتلك   web service & API  للتعامل مع طرف أخر غير الموقع مثال AMAZON و مواقع ال SMS.

لكن مع التطور المتسارع خلال السنوات الأخيرة أصبحت المواقع المتوسطة أيضا تستطيع التعامل مع  طرف أخر  ( مثلا تطبيق موبيل ) و بالتالى تحتاج الى ان تمتلك API قوى لتصدير المعلومات المطلوبة للطرف الأخر،  بالتالى أصبح من الضروري أن تتعلم  API RESTful، هناك مطورين عملهم مقتصر على العمل على بناء  application logic وتصدير API ( backend developer  ,API Developer ) .

ال API هو إختصار " application program interface "  و هو فى الأصل موجه للمبرمجين ( التقنين ) للتعامل من بيانات و وظائف التطبيق الخاص بك.

لذا سنقوم سويا بشرح  كيفية بناء API يمكن العمل عليها لسنوات  و التعديل عليه  بشكل قياسى و أحترافي، من السهل بناء  spaghetti code و لكن سنعرف سويا كيفية التصميم و البناء الأحترافى.

منذ عد سنوات قمت ببناء متجر اليكترونى يحتوى على  ( أعضاء، منتجات، سلة شراء  و طلبات )  سيكون هو المثال الذى سنعمل عليه خلال سلسلة المقالات التالية.
هناك العديد من القواعد التى يجب علينا  أخدها فى الحسبان قبل البدء فى بناء API  من ومن أهمها على الإطلاق .
* لا تستخدم البيانات الحقيقية الموجودة فى الموقع الرئيسى خلال مرحلة التطوير و التجربة
DON'T use production data in developing or testing 
تخيل معى أنك تقوم على برمجة سكريبت يقوم بإرسال بريد  للأعضاء الذين يملكون منتجات فى سله المشتريات لتحفزيهم على القيام بالشراء فورا و تحويل سله المشتريات الى طلبات  حقيقية، تخيل و انت تقوم على التطوير و تستخدم البريد الحقيقى للأعضاء و تقوم بإرسال رسائل بمحتوى وهمى لهم و قد يكون منهم من قام بالطلب أو إلغاء بعض المنتجات من السله أو تفريغ السله، فى هذا الموقف تكون خسرت ثقة العملاء فى الموقع بدلا من كسب ثقتهم ، بهذا ستكون كلفت الشركة  خسارة ليست بالقليلة.
“لم أقع فى هذا الخطأ من قبل لكن أعرف بعض المبرمجين  سقطوا فى هذا الفخ،  لا تكن مثلهم.“
* ما هى البيانات التى يجب علي استخدامها فى مرحلة التطوير ؟
هناك العديد من التطبيقات و المكتبات التى تقوم بخلق محتوى وهمى يمكنك الأعتماد عليه فى مرحلة التطوير، سيكون المحتوى مشابه لدرجة تكفى لأختبار الموقع.
ستجد مثلا مكتبة  Faker  متوافقة  و سلسة  جدا مع كل PHP Frameworks  و مدمج مع بعضها مثل Laravel.

اكاديمية حسوب توفر شرح جيد جدا للمكتبة Faker، يمكنك معرفة كيفية أستخدام المكتبة بشكل جيد من هنا
 http://bit.ly/24d4nZL

بهذا نكون قد أنهينا أول درس عن " بناء  و تصميم API  أحترافى"
تابعوا الدروس التالية سنتحدث عن كيفية بناء API سلس و بسيط بعيدا عن التعقيد ويمكن للمطورين الأخرين التطوير و التعديل عليه.