هذا جزء 1 من مقالتين تشرح المفاهيم الأساسية لـ REST.
ما يجب أن تعرفه قبل قراءة هذه المقالة:
يجب أن يكون لديك بعض الفهم لما هو HTTP وما هو API.
REST هو نمط معماري، أو نمط تصميم، لواجهات برمجة التطبيقات (APIs).
من اخترع REST؟
تم تعريف REST بواسطة Roy Fielding، وهو عالم كمبيوتر. وقدم مبادئ REST في رسالته الدكتوراه في عام 2000.
قبل أن نخوض في من يقوم بعمل API RESTful وما هي الشروط والقواعد التي يجب أن تتبعها إذا كنت تريد إنشاء RESTful APIs، دعونا نشرح مصطلحين أساسيين:
العميل (client) — العميل هو الشخص أو البرنامج الذي يستخدم واجهة برمجة التطبيقات (API). يمكن أن يكون مطوراً، على سبيل المثال، يمكنك كمطور، إستخدام Twitter API لقراءة وكتابة البيانات من Twitter، إنشاء تغريدة جديدة والقيام بالمزيد من العمليات في برنامج تكتبه. سوف يستدعي برنامجك Twitter’s API. كما يمكن أن يكون العميل متصفح الويب. عندما تذهب إلى موقع تويتر، يكون المتصفح هو العميل الذي يستدعي الـ Twitter API ويستخدم البيانات الراجعة لتصبح المعلومات على الشاشة.
المصدر (Resource) — يمكن أن يكون المصدر أي كائن يمكن لـ API توفير معلومات عنه. على سبيل المثال، في Instagram API يمكن أن يكون المصدر مستخدماً أو صورة أو هاشتاغ. يحتوي كل مورد على معرّف فريد. يمكن أن يكون المعرف اسماً أو رقماً.
الآن دعونا نرجع لـ REST.
يعرض تطبيق الويب RESTful معلومات عن نفسه في شكل معلومات عن مصادره (resources). كما أنه يتيح للعميل إتخاذ إجراءات بشأن تلك المصادر، مثل إنشاء مصادر جديدة (مثل إنشاء مستخدم جديد) أو تغيير المصادر الموجودة (مثل تعديل مقالة).
لكي تكون واجهات برمجة التطبيقات (API) RESTful يجب عليك اتباع مجموعة من القيود عند كتابتها. مجموعة قيود الـ RESTسوف تجعل الـ API الخاص بك أسهل، كما أنها أسهل في الاكتشاف، مما يعني أن المطور الذي بدأ للتو في إستخدام واجهات برمجة التطبيقات (API) لديه وقت أفضل لتعلم كيفية القيام بذلك.
REST يرمز إلى REpresentational State Transfer. وتعني نقل الحالة المعروضة.
ويعني ذلك أنه عند إستدعاءRESful API، يقوم الخادم (server) بنقل تمثيل حالة المصدر المطلوب إلى العميل.
على سبيل المثال، عندما يدعو أحد المطورين Instagram API لجلب مستخدم معين (المصدر)، سيقوم API بإعادة حالة ذلك المستخدم، بما في ذلك اسمه، وعدد عمليات النشر التي نشرها المستخدم على instegram حتى الآن، وعدد المتابعين الذين لديه، وغير ذلك.
ويمكن أن يكون تمثيل الحالة في شكل JSON، وربما بالنسبة لمعظم الـ APIs هذه هي الحالة بالفعل. يمكن أن يكون أيضا بتنسيق XML أو HTML.
يعتمد ما يقوم به الخادم (server) عندما تقوم أنت، العميل، باستدعاء أحد واجهات برمجة التطبيقات (API) الخاصة به على أمرين يجب عليك توفيرها للخادم:
معرف المصدر الذي تهتم به. هذا هو عنوان URL للمصدر، والمعروف أيضا بنقطة النهاية (endpoint). في الواقع، عنوان URL هو اختصار لـ Uniform Resource Locator ويعني محدد الموارد الموحد.
العملية التي تريد أن يقوم بها الخادم (server) على ذلك المصدر في نموذج (form) على دالة HTTP. الدوال الشائعة لـ HTTP هي GET، POST، PUT، وDELETE.
على سبيل المثال، جلب مستخدم Twitter’s RESTful API، سيتطلب عنوان URL يحدد ذلك المستخدم و دالة HTTP التي هي GET.
مثال آخر، عنوان URL هذا: www.twitter.com/jk_rowling لديه المعرف الفريد للمستخدم J. K. Rowling على تويتر، و اسم المستخدم الخاص بها هو jk_rowling. يستخدم تويتر اسم المستخدم كمعرف، وبالفعل فإن أسماء مستخدمي تويتر فريدة — لا يوجد مستخدمان على تويتر بنفس اسم المستخدم.
تشير دالة HTTP GET إلى أننا نريد الحصول على حالة ذلك المستخدم.
تابع إلى الجزء 2 للتعرف على 6 قيود في REST.