واجهات برمجة REST APIs

menu icon

واجهات برمجة REST APIs

توفر واجهات برمجة تطبيقات REST API طريقة مرنة وبسيطة لدمج التطبيقات، وقد برزت باعتبارها الطريقة الأكثر شيوعا لربط المكونات في بنيات الخدمات المصغرة.

ما هي REST API؟

تعد API، أو واجهة برمجة التطبيقات، مجموعة من القواعد التي تحدد كيفية اتصال أو تواصل التطبيقات أو الأجهزة مع بعضها البعض. وتعد REST API واجهة برمجة تطبيقات تتوافق مع مبادئ تصميم REST، أو النمط التصميمي لنقل حالة التمثيل. لهذا السبب، يشار أحيانا إلى واجهات برمجة تطبيقات REST API باسم RESTful APIs‏.

تم تعريفها لأول مرة في عام 2000 من قبل عالم الكمبيوتر د. روي فيلدينج في رسالة الدكتوراه الخاصة به، حيث يوفر REST مستوى عالي نسبيا من المرونة والحرية للمطورين. هذه المرونة هي سبب واحد فقط لظهور واجهات برمجة REST API كطريقة شائعة لربط المكونات والتطبيقات في بنية الخدمات المصغرة.

مبادئ تصميم REST

على المستوى الأساسي، تعد واجهة برمجة التطبيقات آلية تمكن تطبيق أو خدمة من التوصل إلى مصدر داخل تطبيق أو خدمة أخرى. يطلق على التطبيق أو الخدمة التي تقوم بالتوصل اسم الوحدة التابعة، ويطلق على التطبيق أو الخدمة التي تحتوي على المصدر اسم وحدة الخدمة.

تقوم بعض واجهات برمجة التطبيقات، مثل SOAP أو XML-RPC، بفرض إطارا صارما على المطورين. ولكن يمكن تطوير واجهات برمجة تطبيقات REST API باستخدام أي لغة برمجة تقريبا ودعم مجموعة متنوعة من تنسيقات البيانات. الشرط الوحيد هو أنها تتفق مع مبادئ تصميم REST الستة التالية - تعرف أيضا باسم قيود التصميم:

  1. واجهة تعامل موحدة. كل طلبات API من نفس المصدر يجب أن تكون متماثلة، بغض النظر عن مصدر الطلب. يجب أن تضمن REST API أن نفس الجزء من البيانات، مثل الاسم أو عنوان البريد الإلكتروني للمستخدم، ينتمي إلى كود تعريف مصدر موحد واحد فقط (URI). يجب ألا تكون المصادر كبيرة جدا ولكن يجب أن تحتوي على كل جزء من المعلومات التي قد تحتاجها الوحدة التابعة.
  2. فصل الوحدة التابعة عن وحدة الخدمة. في تصميم REST API، يجب أن تكون تطبيقات الوحدة التابعة ووحدة الخدمة مستقلة تماما عن بعضها البعض. المعلومات الوحيدة التي يجب أن يعرفها تطبيق الوحدة التابعة هي URI للمصدر المطلوب؛ و لا يمكن التعامل مع تطبيق وحدة الخدمة بأي طرق أخرى. وبالمثل، لا يجب أن يقوم تطبيق وحدة الخدمة بتعديل تطبيق الوحدة التابعة بخلاف تمريره إلى البيانات المطلوبة بواسطة HTTP.
  3. بدون حالة محددة. تكون واجهات برمجة تطبيقات REST APIs غير محددة الحالة، مما يعني أن كل طلب يحتاج إلى تضمين كل المعلومات اللازمة لتشغيله. بمعنى آخر، لا تتطلب واجهات برمجة تطبيقات REST API أي جلسات من جانب وحدة الخدمة. لا يسمح لتطبيقات وحدة الخدمة بتخزين أي بيانات متعلقة بطلب الوحدة التابعة.
  4. القابلية للتخزين المؤقت. عندما يكون ذلك ممكنا، يجب أن تكون المصادر قابلة للتخزين المؤقت على الوحدة التابعة أو وحدة الخدمة. تحتاج استجابات وحدة الخدمة أيضا إلى احتواء معلومات حول ما إذا كان التخزين المؤقت مسموحا به للمصدر الذي تم تسليمه. الهدف هو تحسين الأداء من جانب الوحدة التابعة، مع زيادة قابلية التوسع على جانب وحدة الخدمة.
  5. بنية نظام متعدد الطبقات. في REST API، تمر الاستدعاءات والاستجابات عبر طبقات مختلفة. وكقاعدة عامة، لا يجب افتراض أن تطبيقات الوحدة التابعة ووحدة الخدمة تتصل مباشرة ببعضها البعض. قد يكون هناك عدد من الوسطاء المختلفين في حلقة الاتصال. يجب تصميم REST API بحيث لا يمكن للوحدة التابعة أو وحدة الخدمة معرفة ما إذا كانت تتواصل مع التطبيق النهائي أو الوسيط.
  6. كود عند الطلب (اختياري). عادة ما تقوم REST API بإرسال مصادر ثابتة، ولكن في بعض الحالات، يمكن أن تحتوي الاستجابات أيضا على أكواد قابلة للتنفيذ (مثل تطبيقات Java الصغيرة). في هذه الحالات، يجب أن يتم تشغيل الكود عند الطلب فقط.

كيف تعمل واجهات برمجة REST API

تقوم واجهات برمجة تطبيقات REST API بالتواصل عبر طلبات HTTP لأداء وظائف قاعدة البيانات القياسية مثل تكوين وقراءة وتحديث و حذف السجلات (المعروفة أيضا باسم CRUD) داخل أحد المصادر. على سبيل المثال، قد تستخدم واجهة برمجة التطبيقات REST API طلب GET لاسترجاع سجل، وطلب POST لتكوين سجل، وطلب PUT لتحديث سجل، وطلب DELETE لحذف سجل. كل طرق HTTP يمكن استخدامها في استدعاءات API. تكون واجهة برمجة تطبيقات REST API التي تم تصميمها بطريقة جيدة مماثلة لموقع الإنترنت الذي يتم تشغيله في برنامج استعراض الإنترنت باستخدام وظائف HTTP الضمنية.

تعرف حالة المصدر في أي لحظة معينة، أو خاتم وقت، باسم تمثيل المصدر. يمكن تسليم هذه المعلومات إلى الوحدة التابعة بأي نسق تقريبا بما في ذلك JavaScript ‎Object Notation (JSON) أو HTML أو XLT أو Python أو PHP أو نص عادي. تحظى JSON بشعبية لأنه يمكن قراءتها من قبل كل من البشر والآلات — وهي لغة برمجة حيادية.

تعتبر نصوص رأس الطلب والمعاملات مهمة أيضا في استدعاءات REST API لأنها تتضمن معلومات تعريفية مهمة مثل بيانات التوصيف، والصلاحيات، وأكواد تعريف المصدر الموحد (URIs)، والتخزين المؤقت، وملفات تعريف الارتباط، والمزيد. يتم استخدام نصوص رأس الطلب ونصوص رأس الاستجابة، جنبا إلى جنب مع أكواد حالة HTTP التقليدية، في واجهات برمجة تطبيقات REST API التي تم تصميمها جيدا.

أفضل ممارسات REST API

على الرغم من أن المرونة هي ميزة كبيرة لتصميم REST API، إلا أن نفس المرونة تجعل من السهل تصميم واجهة برمجة تطبيقات معطلة أو ضعيفة الأداء. لهذا السبب، يتشارك المطورون المحترفون أفضل الممارسات في مواصفات REST API.

تقوم ‎OpenAPI Specification (OAS) بإنشاء واجهة تعامل لوصف API بطريقة تسمح لأي مطور أو تطبيق لاكتشافه وتفهمه بالكامل للمعاملات والإمكانيات الخاصة به - نقاط النهاية المتاحة، والعمليات المسموح بها على كل نقطة نهاية، ومعاملات العملية، وطرق التوثيق، ومعلومات أخرى. تتضمن أحدث نسخة، OAS3 (الرابط يوجد خارج IBM)، أدوات عملية، مثل OpenAPI Generator، لتكوين نماذج محاكية للوحدات التابعة ووحدة خدمة واجهة برمجة التطبيقات بلغات برمجة مختلفة.

يبدأ تأمين واجهة برمجة تطبيقات REST API أيضا بأفضل الممارسات الصناعية، مثل استخدام خوارزميات التجزئة لأمان كلمة السرية وHTTPS لنقل البيانات بشكل آمن. يمكن أن يساعد إطار عمل الصلاحيات مثل OAuth 2.0 (الرابط يوجد خارج IBM) في الحد من امتيازات تطبيقات الطرف الثالث. باستخدام خاتم زمني في نص رأس HTTP، يمكن لواجهة برمجة التطبيقات أيضا رفض أي طلب يصل بعد فترة زمنية معينة. يعد التحقق من صحة المعاملات وJSON Web Tokens طرقا أخرى للتأكد من أن الوحدات التابعة المصرح لها فقط يمكنها التوصل إلى واجهة برمجة التطبيقات.

واجهات برمجة تطبيقات REST وIBM Cloud

تعني مزايا واجهات برمجة تطبيقات REST API أنها ستظل جزء لا يتجزأ من عملية تطوير البرامج، خاصة وأن الطلب على تجارب أفضل للعملاء والمزيد من التطبيقات يؤثر على عمليات الأعمال وتكنولوجيا المعلومات.

عندما يتعلق الأمر بتلبية هذه الطلبات، فان التحرك باتجاه آلية تشغيل أكبر سيساعد. على نحو مثالي، يبدأ الأمر بمشاريع صغيرة يمكن ملاحظة نجاحها، ويمكنك عندئذ توسيع نطاقها وتحسينها للعمليات الأخرى وفي أجزاء أخرى من مؤسستك. من خلال العمل مع شركة IBM، سيتوافر لديك إمكانية التوصل إلى إمكانات التشغيل الآلي المدعومة بالذكاء الاصطناعي، بما في ذلك مسارات العمل التي تم بنائها مسبقا، للمساعدة في تسريع الابتكار من خلال جعل كل عملية أكثر ذكاء.

يمكن أن تساعدك أدوات وخدمات IBM في معالجة المشاكل الهامة المحيطة بواجهة برمجة تطبيقات APIs — بما في ذلك مستوى الأمان والحوكمة والتشغيل الآلي — كما تقوم بالاستمرار في تحديث تطبيقاتك.

اتخذ الخطوة التالية:

  • تحقق من IBM Cloud Pak for Integration، المبني على إمكانيات IBM API Connect الأساسية للسماح للقائمين بالتصميم والمسؤولين بالتحكم بشكل كامل على دورة حياة API.
  • قم بزيارة IBM Cloud API Docs، التي تحتوي على المطبوعات الفنية لواجهات برمجة API التي يتم دعمها على IBM Cloud.
  • قم بإجراء تقييم نضج التكامل الخاص بنا لتقييم مستوى نضج التكامل الخاص بك عبر الأبعاد الهامة واكتشاف التصرفات التي يمكنك اتخاذها للوصول إلى المستوى التالي.
  • قم بتنزيل دليل التكامل السريع الخاص بنا، الذي يستكشف مزايا نهج الخدمات المصغرة القائم على الحاويات واللامركزية والمتوافق مع الحلول المتكاملة.

البدء باستخدام حساب IBM Cloud اليوم.