تعريف REST API: فهم أساسيات واجهات برمجة تطبيقات REST

By |2022-05-16T09:08:22+00:0028 يناير، 2020|

"ما هي واجهة برمجة تطبيقات REST وكيف تعمل؟" هو سؤال شائع.

An API (واجهة برنامج التطبيق) هي مجموعة من القواعد التي تمكن البرامج المختلفة من التواصل مع بعضها البعض. توضح الطريقة المناسبة لمطور البرامج لإنشاء برنامج على خادم يتواصل مع تطبيقات العميل المختلفة.

يشير تكامل API إلى تطبيقين (تطبيقين أو أكثر) متصلين من خلال واجهات برمجة التطبيقات الخاصة بهم لتبادل البيانات وأداء وظيفة مشتركة ، وبالتالي ، تمكين التفاعل بين التطبيقات. الآن بعد أن حددنا API ، دعنا ننتقل نحو REST APIs. تستخدم مواقع الويب المختلفة مثل Amazon و Google و Facebook و LinkedIn و Twitter واجهات برمجة التطبيقات القائمة على REST والتي تتيح للمستخدمين التواصل مع هذه الخدمات السحابية.

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

يكتشف:

ما هو REST API؟

في عام 2000 ، حدد Roy Fielding REST على أنه أسلوب ومنهجية معمارية تستخدم بشكل متكرر في تطوير خدمات الإنترنت ، مثل أنظمة الوسائط التشعبية الموزعة.

الشكل الكامل لـ REST API هو واجهة برمجة تطبيقات نقل الحالة التمثيلية المعروفة بشكل أكثر شيوعًا باسم خدمة الويب REST API. هذا يعني أنه عندما يتم استدعاء RESTful API ، سيقوم الخادم بذلك تحويل a التمثيل من المورد المطلوب حالة لنظام العميل.

على سبيل المثال ، عندما يطلب المطور Twitter API لجلب كائن مستخدم (مورد) ، فإن API ستعيد حالة هذا المستخدم واسمه ومتابعيه والمنشورات التي تمت مشاركتها على Twitter. هذا ممكن بسبب مشاريع تكامل API.

يمكن أن يكون تمثيل الحالة هذا بتنسيق JSON أو XML أو HTML.

تعريف REST API

(المصدر: Seobility)

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

عادةً ما يُفضل استخدام REST على SOAP الأكثر قوة مثل الاستخدامات السابقة عرض نطاق أقل، مما يجعلها أكثر ملاءمة لخدمات الويب الشاملة في العالم. يستخدم بروتوكول HTTP لجلب البيانات أو تنفيذ العمليات في العديد من تنسيقات البيانات (مثل XML و JSON) ؛ يسمح بعمليات أسرع.

وبالتالي ، يستخدم SOAP نقل بيانات XML ، وتحديد العمليات كمنافذ WSDL أحادية الاتجاه مع العديد من مثيلات العملية التي تشترك في نفس الإجراءات. في REST ، يتم وصف العمليات في الرسائل نفسها. علاوة على ذلك ، هناك اتجاه واحد لكل حالة عملية.

هناك اختلاف آخر بين SOAP و REST يكمن في كيفية اقتران هذه البروتوكولات. SOAP مرتبط بإحكام ، في حين أن الأخير مرتبط بشكل ضعيف. يعني الاقتران الضعيف أن الوحدات النمطية مستقلة ، والاختلافات في إحداها لا تزعج عمل الآخرين. نتيجة لذلك ، هناك مرونة وقابلية لإعادة الاستخدام عند إضافة الوحدات أو استبدالها أو تعديلها. من ناحية أخرى ، يعني الاقتران المحكم أن الوحدات تميل إلى أن تكون معتمدة على بعضها البعض. لذلك ، يمكن أن يكون للاختلافات في وحدة واحدة تأثير على مستوى النظام. كل هذه الاختلافات تجعل واجهة برمجة التطبيقات API مريحة.

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

كيف تعمل واجهة برمجة تطبيقات REST؟

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

يُعرف كل عنوان URL باسم طلب ، في حين تُعرف البيانات التي يتم إرجاعها باسم الاستجابة.

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

تستفيد واجهة برمجة تطبيقات REST من طرق HTTP الموصوفة بواسطة بروتوكول RFC 2616. يستخدم طلبات HTTP التالية:

  • الحصول على طلب لجلب البيانات
  • ضع طلب لتغيير حالة البيانات (مثل كائن أو ملف أو كتلة)
  • طلب POST  لإنشاء البيانات
  • حذف طلب للقضاء عليه

يمكن رؤية أفعال HTTP أو أكواد الحالة المختلفة التي تستخدمها واجهات برمجة تطبيقات REST هنا.

ما هي RESTful APIs المستخدمة؟

لفهم ما هو RESTful API بشكل أفضل ، وما هي واجهة برمجة التطبيقات المستخدمة ، وكيف تعمل ، وتعريف Rest API ، دعنا نفكر في مثال.

لنفترض أنك تريد مشاهدة مقاطع فيديو تعليمية حول "تكامل البيانات" على YouTube. تذهب إلى YouTube ، وتكتب "تكامل البيانات" في حقل البحث ، واضغط على إدخال ، وستظهر قائمة مقاطع الفيديو حول تكامل البيانات. حق؟

تعمل واجهة برمجة تطبيقات RESTful بشكل مشابه. أنت تبحث عن شيء ما وترجع قائمة النتائج من الخدمة التي طلبتها.

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

نظرًا لعدم إمكانية الاحتفاظ بأي بيانات يجب استعادتها من خلال المعاملة اللاحقة ، فإن REST هو البروتوكول المطلوب للاتصال بالإنترنت. كما ذكرنا سابقًا ، تعد تقنية REST API مفيدة أيضًا في الاتصال بالتطبيقات السحابية ، حيث يحتاج الوصول إلى خدمة عبر واجهة برمجة التطبيقات إلى تعديل في تفسير عنوان URL.

وبالمثل ، يمكن أيضًا استخدام REST API لـ بيانات الخرائط من منصة سحابية إلى مستودع بيانات أو العكس.

مسرد مصطلحات REST API للمصطلحات الأساسية

قبل الغوص في المبادئ التوجيهية لتصميم واجهات برمجة تطبيقات REST ، دعنا نناقش بإيجاز ثلاثة مصطلحات رئيسية لواجهة برمجة التطبيقات:

العميل

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

مورد

يمكن أن يكون المورد أي كائن يمكن لواجهة برمجة التطبيقات تقديم معلومات عنه. على سبيل المثال ، في حالة واجهة برمجة تطبيقات Twitter ، يمكن أن يكون المورد مستخدمًا أو علامة تصنيف أو أي نوع وسائط مثل الصورة. كل مورد له معرف مميز يمكن أن يكون اسمًا أو رقمًا.

المورد هو التجريد الأساسي للمعلومات في REST. يستخدم REST API معرف مورد للتعرف على المورد المحدد المتضمن في الاتصال بين العناصر المختلفة.

المخدم

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

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

ميزات REST API

فيما يلي قائمة بالميزات التي تجعلها أكثر تكامل البيانات والتطبيقات كفاءة.

التدرجية

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

المرونة وقابلية النقل

يمكن للمستخدمين التواصل بسهولة حتى إذا كان خادم العميل REST مستضافًا خوادم مختلفة، تقدم فائدة أساسية من منظور الإدارة.

استقلال

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

مبادئ تصميم REST API

الآن بعد أن غطينا الأساسيات وتعرفنا على تعريف REST APIs ، دعنا ننتقل إلى مبادئ REST الستة التي توجه تصميم API:

خادم العميل

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

عديم الجنسية

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

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

قابلة للتخزين المؤقت

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

إذا كانت الاستجابة قابلة للتخزين المؤقت ، فسيتم منح ذاكرة التخزين المؤقت للعميل الحق في إعادة تدوير بيانات الاستجابة لطلبات مماثلة في المستقبل.

واجهة موحدة

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

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

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

نظام الطبقات

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

يتمتع نظام بنية REST API ذو الطبقات باستقرار أكبر لأنه يقيد أداء المكونات. بحيث يتعذر على كل مكون "رؤية" أبعد من الطبقة المباشرة التي يتداخل معها.

كود عند الطلب

يسمح مبدأ REST هذا بإرسال الترميز أو التطبيقات الصغيرة من خلال واجهة برمجة التطبيقات المستخدمة داخل التطبيق.

يسمح تعريف واجهة برمجة تطبيقات REST بتوسيع وظائف العميل عن طريق تنزيل الترميز وتنفيذه في شكل تطبيقات أو نصوص برمجية. يعمل هذا على تبسيط العملاء من خلال تقليل عدد الميزات الأساسية ليتم تنفيذها مسبقًا.

في معظم الأحيان ، يعرض الخادم تمثيل الموارد الثابت بتنسيق XML أو JSON. ولكن عند الحاجة ، يمكن للخوادم تقديم تعليمات برمجية قابلة للتنفيذ إلى العميل.

Astera Centerprise يجعل تكامل API المريح أمرًا سهلاً

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

على عكس SOAP ، لا يتطلب REST من العملاء معرفة دلالات العملية قبل استخدامها. على سبيل المثال ، لا يحتاج العميل إلى معلومات التوجيه باستخدام عنوان URL الأولي. بالإضافة إلى ذلك ، لا تحتاج المنافذ إلى إشعارات متنوعة حيث يمكن للعملاء الحصول على واجهة "مستمع" قياسية للإشعارات.

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

مقالات ذات صلة

لماذا تحتاج إلى منصة تكامل API؟

سواء كنت تعمل في مجال التسويق أو التمويل أو العمليات ، يجب أن تكون قد سمعت الكثير عن تكامل واجهة برمجة التطبيقات في ...
المزيد

تبسيط تكامل التطبيق مع متصفح REST API

يشير تكامل REST API إلى الاتصال بتطبيقات الجهات الخارجية التي تستخدم طلبات HTTPS للوصول إلى البيانات ونقلها. مع العديد من السحابة ...
المزيد

دليل حول كيفية استخدام واجهات برمجة التطبيقات لاستعادة البيانات

واجهة برمجة التطبيقات (على سبيل المثال ، واجهة برمجة التطبيقات) هي واجهة معيارية وآمنة تسمح للتطبيقات بالاتصال والعمل مع ...
المزيد