عموميات حول البروتوكول HTTP للدخول إلى مجال RESTful API

3



لأن اتجاه صناعة البرمجيات في الآونة الأخيرة بدأ يتجه نحو نمط REST الذي يسمح بالوصول إلى خدمات الويب من خلال بروتوكول HTTP، بحيث يصير من السهل استعمال هذه الخدمات في مختلف الأنظمة والأجهزة لأن هذا البروتوكول متعارف عليه من قبل الجميع (أشخاص وأنظمة).
فإنني أنصح جميع الإخوة والأخوات أن يتجهوا نحو هذا المجال لأنه في نظري ركيزة الحاضر والمستقبل إن شاء الله.
ولمن لم يسبق له أن سمع بمصطلح REST أو RESTful API أو HTTP-based services فهذه المقالة قد توضح له بشكل عام هذا النمط، والمبادئ التي يقوم عليها.
لكن من أجل الغوص أكثر في هذا المجال، لابد لنا من الاطلاع على الحد الأدنى من المعلومات الخاصة بكيفية اشتغال بروتوكول HTTP وهو ما سنتعرف عليه في هذه المقالة إن شاء الله.

يسمح لنا بروتوكول HTTP بالقيام بعدة مهام على الويب، استعراض صفحات المواقع، إرسال البيانات إلى السيرفر، وتتم هذه العمليات عبر آليات يقدمها هذا البروتوكول وتسمى بالأفعال Verbs أو وظائف Methods، ولعلنا نعرف مسبقا أنه من ضمن هذه الأفعال نجد GET وPOST ، كل من هذين الفعلين يشتغل في ظرفية معينة، حينما نأتي على سبيل المثال وندخل إلى الرابط التالي:


فإن المتصفح الذي نستعمله يعرف من مقدمة الرابط أعلاه أن العملية عبارة عن طلب من نوع Http أو ما يعرف ب http Request، فيقوم بفتح صفحة الموقع.
ويمكن لطلبات http أن تكون من نوع GET أو من نوع POST، نستعمل GET حينما نريد جلب Resource معينة، كاستعراض صفحة، تحميل صورة، وما إلى ذلك، ونستعمل POST verb حينما نريد أن نرسل البيانات إلى الخادم، مثلا الاشتراك في موقع، كتابة تعليق، وما إلى ذلك من عمليات تستلزم إرسال البيانات إلى الخادم.
يعتبر فعل GET فعلا آمنا safe verb، لأنه لا يؤثر على Resource بل يقوم فقط باستعراضها، بينما يعد الفعل POST فعلا غير آمن unsafe verb لأنه يقوم بإرسال بيانات إلى السيرفر، لذلك إذا قمت بعمل تحديث للصفحة في وضع GET سيتم جلب آخر حالة لل Resource بينما إذا قمت بتحديث الصفحة في وضع POST فإن المتصفح سيسألك عبر رسالة تأكيدية.
توجد بعض الأفعال الأخرى التي يقدمها Http، نذكر بعضها في هذا الجدول:

الفعل
مثال على الرابط
الوصف
GET
http://localhost/courses
جلب جميع الدورات
GET
http://localhost/courses/1
جلب الدورة التي معرفها 1
POST
http://localhost/courses
إنشاء دورة جديدة
DELETE
http://localhost/courses/1
حذف الدورة التي معرفها 1
PUT
http://localhost/courses/1
تحديث الدورة التي معرفها 1
PATCH
http://localhost/courses/1
التحديث الجزئي للدورة التي معرفها 1
OPTIONS
http://localhost/courses/1
جلب العمليات المتوفرة على Resource
HEAD
http://localhost/courses/1
جلب http header فقط

تسمح لنا هذه الأفعال بتحديد طبيعة المهمة التي على URI القيام بها، إذ يكفي أن نحدد الفعل المرتبط بال URI ليتم تنفيذه.
يمكننا باستعمال بعض الأفعال السابقة أن نقوم بالعمليات الأساسية على البيانات فقط من خلال تحديد URI والفعل المناسب له، ونتحدث هنا عن عمليات CRUD والتي ترمز ل Create, Read, Update and Delete. وهو العمل الذي تقوم به تطبيقات REST حيث تستفيد من هذه الأفعال من أجل القيام بعمليات على الموارد Resources.
نكتفي بهذا القدر، دام لكم البشر والفرح!

التعليقات

  1. جزيت خيرا, ننتظر المزيد ان شاء الله

    ردحذف
  2. جزيت خيرا
    اريد معرفة كيف يمكن لشخص ليست عنده مؤهلات جامعية ان يجد عمل في مجال تكنولوجيا المعلومات
    و شكرا

    ردحذف
  3. أخوك محمد الأمين من الجزائر
    جزاك الله عنا و عن جميع المؤمنينو المؤمنات خير الجزاء

    ردحذف