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