ما المقصود بالواجهة RESTful API؟

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

ما المقصود بواجهة برمجة التطبيقات؟

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

يمكنك عد واجهة API للويب كبوابة بين العملاء والموارد على الويب.

العملاء

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

الموارد

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

ما المقصود بنقل الحالة التمثيلية (REST)؟

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

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

فيما يأتي بعض المبادئ لنمط REST الهندسي:

الواجهة الموحدة

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

تفرض الواجهة الموحدة أربعة قيود هندسية:

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

انعدام الحالة

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

النظام متعدد الطبقات

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

إمكانية التخزين في ذاكرة التخزين المؤقت

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

الرمز عند الطلب

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

ما مزايا واجهات RESTful API؟

تتضمن واجهات RESTful API المزايا الآتية:

قابلية التوسع

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

المرونة

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

الاستقلال

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

كيف تعمل واجهات RESTful API؟

إن الوظيفة الأساسية لواجهة RESTful API هي وظيفة تصفح الإنترنت نفسها. يتصل العميل بالخادم من خلال استخدام واجهة API عندما يتطلب موردًا. يشرح مطورو واجهة API كيف يجب على العميل استخدام واجهة REST API في وثائق API لتطبيق الخادم. فيما يأتي الخطوات العامة لأي مكالمة واجهة برمجة التطبيقات (API) لـ REST:

  1. يرسل العميل طلبًا إلى الخادم. يتبع العميل وثائق API لتنسيق الطلب بطريقة يفهمها الخادم.
  2. يصادق الخادم على العميل ويؤكد أن العميل له الحق في تقديم هذا الطلب.
  3. يتلقى الخادم الطلب ويعالجه داخليًا.
  4. يرجع الخادم استجابة إلى العميل. تتضمن الاستجابة معلومات تخبر العميل بما إذا كان الطلب ناجحًا أم لا. تتضمن الاستجابة كذلك أي معلومات طلبها العميل.

تختلف تفاصيل طلب واستجابة واجهة REST API بشكل طفيف اعتمادًا على كيفية تصميم مطوري واجهة API إياها.

ماذا الذي يتضمنه طلب عميل واجهة RESTful API؟

تتطلب واجهات RESTful API أن تتضمن الطلبات المكونات الرئيسية الآتية:

معرف الموارد الفريد

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

الطريقة

غالبًا ما يطبق المطورون واجهات RESTful API باستخدام بروتوكول نقل النص التشعبي (HTTP). تخبر طريقة HTTP الخادم بما يجب أن يفعله بالموارد. فيما يأتي أربع طرق شائعة من طرق HTTP:

GET

يستخدم العملاء طريقة GET للوصول إلى الموارد الموجودة في عنوان URL المحدد على الخادم. ويمكنهم تخزين طلبات GET مؤقتًا وإرسال المعلمات الموجودة في طلب واجهة RESTful API لتوجيه الخادم إلى فلترة البيانات قبل الإرسال.

POST

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

PUT

يستخدم العملاء طريقة PUT لتحديث الموارد الموجودة على الخادم. على خلاف POST، يؤدي إرسال طلب PUT نفسه عدة مرات في خدمات شبكة RESTful إلى النتيجة نفسها.

DELETE

يستخدم العملاء طلب DELETE لحذف الموارد. يمكن لطلب DELETE تغيير حالة الخادم. ومع ذلك، يفشل الطلب إذا لم تكن لدى المستخدم المصادقة المناسبة.

عناوين HTTP

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

البيانات

قد تتضمن طلبات واجهة REST API بيانات لطريقة POST وPUT وطرق HTTP الأخرى للعمل بشكل ناجح.

المعلمات

يمكن أن تتضمن طلبات واجهة RESTful API معلمات توفر للخادم مزيدًا من التفاصيل حول ما يجب القيام به. فيما يأتي بعض أنواع المعلمات المختلفة:

  • معلمات المسار التي تحدد تفاصيل عنوان URL.
  • معلمات الاستفسار التي تطلب مزيدًا من المعلومات حول الموارد.
  • معلمات ملفات تعريف الارتباط التي تصادق على العملاء بسرعة.

ما طرق مصادقة واجهة RESTful API؟

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

تحتوي واجهة RESTful API على أربع طرق مصادقة شائعة:

مصادقة HTTP

يحدد HTTP بعض أنظمة المصادقة التي يمكنك استخدامها مباشرةً عندما تطبق واجهة REST API. فيما يأتي نوعان من هذه الأنظمة:

المصادقة الأساسية

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

مصادقة الحامل

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

مفاتيح واجهة API

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

بروتوكول OAuth

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

ما الذي تحتوي عليه استجابة خادم واجهة RESTful API؟

تتطلب مبادئ REST أن تتضمن استجابة الخادم المكونات الرئيسية الآتية:

بند الحالة

يحتوي بند الحالة على رمز حالة مكون من ثلاثة أرقام يوضح نجاح الطلب أو فشله. على سبيل المثال، تشير الرموز 2XX إلى النجاح، ولكن الرموز 4XX و5XX تشير إلى وجود أخطاء. تشير الرموز 3XX إلى إعادة توجيه URL.

فيما يأتي بعض رموز الحالة الشائعة:

  • 200: استجابة نجاح عامة
  • 201: استجابة نجاح لطريقة POST
  • 400: طلب غير صحيح تتعذر على الخادم معالجته
  • 404: لم يتم العثور على الموارد

نص الرسالة

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

'{"name":"John", "age":30}'

العناوين

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

كيف يمكن أن تساعدك AWS على إدارة واجهة RESTful API؟

Amazon API Gateway هي خدمة مُدارة بالكامل تسهل على المطورين إنشاء واجهات برمجة التطبيقات ونشرها وصيانتها ومراقبتها وتأمينها على أي مستوى. باستخدام API Gateway، يمكنك إنشاء واجهات RESTful API لتطبيقات الاتصال ثنائية الاتجاه في الوقت الفعلي:

باستخدام API Gateway، يمكنك:

  • تزويد المستخدمين بأداء عالي السرعة لكل من طلبات واستجابات API.
  • اعتماد الوصول إلى واجهات API باستخدام AWS Identity and Access Management (IAM) وAmazon Cognito. ويوفر كلاهما دعم بروتوكول OAuth الأصلي.
  • تشغيل العديد من الإصدارات لواجهة API نفسها في وقت واحد باستخدام API Gateway لتكرار الإصدارات الجديدة واختبارها وإصدارها بسرعة.
  • مراقبة مقاييس الأداء والمعلومات المتعلقة بمكالمات واجهة مبرمج التطبيقات (API) ووقت استجابة البيانات ومعدلات الأخطاء من API Gateway. 

ابدأ استخدام API Gateway من خلال إرشاداتنا التفصيلية خطوة بخطوة وإنشاء حساب AWS اليوم.

الخطوات التالية في AWS

تحقّق من الموارد الإضافية المتعلقة بالمنتج
تعرّف على المزيد حول خدمات تكامل التطبيقات 
تسجيل الاشتراك للحصول على حساب مجاني

تمتع بالوصول الفوري إلى طبقة AWS المجانية.

سجل الاشتراك للحصول على طبقة API Gateway مجانية 
بدء الإنشاء في وحدة التحكم

بدء الإنشاء في وحدة إدارة تحكم AWS.

تسجيل الدخول