ماهي Web API

Web-api
مقدمة نظرية اولاً عن ماهي Web API :
هي عبارة عن تقنية مقدمة من مايكروسوفت تقوم بعمل تغليف لما يعرف بتقنية REST وسواء Web API اوREST كلاهما يعتبران عن تغليف لما يعرف با أفعال HTTP او ( HTTP Verbs ) حيث انهم لا يحتويان على واجهة View محددة انما يتم برمجتهم على شكل فئات برمجية او Actions كل اكشن يقوم بعملية محددة ويتم استضافتهم على شكل خدمات ويب او خدمات ويندوز ومن ثم التعامل معهم من خلال أي واجهة برمجية ( واجهة موبايل , واجهة ويب , واجهة تطبيق مكتبي تطبيق ويندوز او تطبيق لينكس ).

الشئ الذي جعل فئات Web API يسهل التعامل معها عبر أي واجهة او تقنية برمجية هو ان هذه الفئات تمتاز بقدرتها ارجاع بيانات من نوع XML او JOSN وبما انا اغلب ان لم يكن كل التقنيات البرمجية اليوم يمكن لها قراءة والتعامل مع البيانات من هذه النوع اصبح من الممكن لأي تقنية التعامل مع Wep API .

البنية البرمجية والتقسيم الخاص باWeb API شبيه جداً بتقسيم التطبيقات الخاصة با MVC حيث انها تحتوي على طبقة بيانات Model وتحتوي على Controller يوجد به مجموعة من الاكشن ولكن لا يوجد Views ( مثل ما ذكرنا مسبقاً يمكن ان يتم نشر هذه الفئات والتعامل معها عبر أنواع متعددة وليست مقيدة من الـ Views ) .

كل الاكشن الذي تتواجد في الـ Controllers الخاصبا بالويب API تكون اسمائها بأفعال
( HTTP Verbs ) وهي كالتالي :

1 –Get : وهذه الفعل وظيفته يقوم بإحضار البيانات من طبقة البيانات وطبقة البيانات تقوم بإحضار البيانات من مصدر البيانات سواء كان قاعدة بيانات او ملف او أي ما يكون .
2- POST : الفعل هذه وظيفته يقوم بأرسال البيانات الى طبقة البيانات وبالتالي تقوم طبقة البيانات بعملية ادخال هذه البيانات الى مصدر البيانات سواء كان عبارة عن قاعدة بيانات او أي مصدر اخر .
3- PUT : وظيفة هذه الفعل يقوم بعمل Update او تحديث او تعديل للبيانات الموجودة اصلاً في مصدر البيانات وذلك عبر إعطاء الامر الى طبقة البيانات وبالتالي هي تقوم بتحديث هذه البيانات بدل البيانات السابقة في قاعدة البيانات .
4 –Delete: ووظيفة هذه الفعل هو حذف بيانات معينة وذلك عبر إعطاء امر الى طبقة البيانات وبالتالي هي تقوم بعملية حذف البيانات من داخل مصدر البيانات سواء كان قاعدة بيانات او غيرها .

هذه باختصار شديد وظيفة Web API ولتتوضح اكثر الفكرة لنفرض ان معانا مشروع بسيط جداً لمجموعة من الطلاب في جامعة معينة وهؤلاء الطلاب يجب عليهم ان يختاروا المواد الذي سوف يقوموا بدراستها خلال الفصل الدراسي يعني معانا جدولين في هذه المشروع الأول مختص ببيانات الطلاب والثاني مختص بالدرجات الذي سوف يختاروها وأسماء الجداول الاثنين كالتالي:

1 – Student
2 – Enrollment

ces
واضح جداً ان العلاقة بين الجدولين One-To-Many وذلك لان الطالب الواحد ممكن يختار في الفصل اكثر من مادة.

بعد ما نقوم بعملية انشاء هذه الجداول سوف نقوم بأنشاء طبقة البيانات التي سوف تتعامل مع هذه الجداول حيث سوف نستخدم Entity Framework كالممثلةلطبقة البيانات هذه سوف تلعب دور الوسيط بين الفئات البرمجية Wep API و قاعدة البيانات حيث انه على سبيل المثال اذا قامت الفئة المختصة بعملية الاستعلام او طلب عرض أسماء الطلاب مع المواد المشتركين بها والتي سوف تكون في حالتنا هذه عبر الفعل GET كما ذكرنا سابقاً طبقة البيانات ( Entity Framework )
databasefirst
سوف تقوم بالنيابة عنا بأنشاء جملة الاستعلام من غير ان نقوم بكتابتها وتوجه جملة الاستعلام تلقائياً الى قاعدة البيانات وترجع الناتج الى الفعل Get والذي بدوره سوف يقوم بإرسال هذه البيانات على شكل XML او JOSN وهذه البيانات المرجعة يمكن استخلاصها وعرضها عبر أي طبقة عرض لأي تطبيق او أي تقنية سوف تستخدم خدمة الـ Web API الذي قمت بنشرها انا مثلاً على أي استضافة ويب سواء كانت هذه الواجهة عبارة عن واجهة تطبيق موبايل ويندوز فون او اندرويد او حتى IPHONE او عبارة عن صفحة ويب ASP.NET او PHP او حتى صفحة مكونة من JAVAScript فقط .

وكذه تتم العمليات ايضاً وبنفس الأسلوب والطريقة في الإضافة POST أو التعديلPUT او الحذف DELETE.

واخيراً : الى هنا اكتفي بالمقدمة النظرية التي أرى شخصياً انها تحمل مستقبل التطبيقات بمختلف أنواعها.