اعتماد API REST لمشاريع الويب الخاصة بك

 

API REST








هل تساءلت يومًا كيف تنتهي جميع منشورات Facebook و Twitter بطريقة سحرية على هاتفك أو متصفحك؟ كيف تتمكن مواقع مقارنة الرحلات أو الفنادق من تضمين جميع أسعار جميع شركات الطيران أو جميع الفنادق في تطبيقها؟ وماذا عن كيفية رؤية البيانات وتحريرها من خلال تطبيقات الويب الخاصة بك؟

حسنًا ، كل هذا بفضل واجهة برمجة التطبيقات! API

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

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

اكتشف ما هي API

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

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

API هنا ، API هناك ، حسنًا ، لكن ماذا تعني API؟😵

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

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

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

خذ على سبيل المثال شركة الخطوط الجوية الفرنسية Air France. في مكان ما في العالم ، تتمتع خوادم الخطوط الجوية الفرنسية بإمكانية الوصول إلى جميع البيانات التي تريد رؤيتها لرحلة باريس-لشبونة: الطائرات المختلفة ، والأسعار ، وحالة الرحلة ، وما إلى ذلك. لكي تتمكن من الوصول إليه ، يجب أن يتلقى متصفحك (المعروف باسم العميل) هذه المعلومات من شخص ما.

هذا الشخص هو الخادم. يجب أن يكون التطبيق محادثة مع الخادم.




تبدو هكذا:

- العميل: "مرحبًا أيها النادل ، هل يمكنني ركوب طائرة إلى لشبونة يوم 10 ديسمبر؟" 🤔

- الخادم: "ها أنت ذا ، جميع وسائل النقل متاحة إلى لشبونة في 10 ديسمبر!" "🎉

أو ، إذا لم يتمكن الخادم من العثور على البيانات ، فقد يستجيب على النحو التالي:

- الخادم: "عذرًا ، في الواقع لا توجد رحلات طيران متاحة في 10 ديسمبر. "🙁


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

وفجأة ، أين تناسب API في هذا الرسم التخطيطي؟ وما العلاقة مع الخطوط الجوية الفرنسية؟

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



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



نقوم بإنشاء تطبيق مقارنة الرحلات والذي سوف نسميه VolScanner. لا يمكن لهذا الوصول مباشرة إلى المعلومات من الخطوط الجوية الفرنسية أو أي شركة طيران أخرى. في الواقع ، لا يمتلك التطبيق حق الوصول إلى قاعدة البيانات الخاصة به ... ولكن إذا كان لدى Air France واجهة برمجة تطبيقات يمكن من خلالها طلب المعلومات والتي تشارك بيانات قاعدة بيانات معينة مع تطبيقات أخرى ، فقد يطلب VolScanner معلومات من Air France API. تقوم واجهة برمجة التطبيقات (API) بعد ذلك بإرسال البيانات التي يمكن لـ VolScanner مشاركتها!

وبالتالي ، يمكن لـ VolScanner مقارنة الأسعار بين الشركات المختلفة التي أقامت رحلة في 10 ديسمبر إلى لشبونة. معجون دي ناتا اللذيذ لك! ✨

يمكن لواجهات برمجة التطبيقات التواصل:

من برنامج إلى برنامج ؛

من عميل إلى خادم ؛

أو برامج للمطورين.

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

ذلك لأن Google و Facebook قد أنشأوا واجهات برمجة تطبيقات يمكن للمطورين الآخرين استخدامها في مواقع الويب الخاصة بهم للاعتناء بالتسجيل وتسجيل الدخول للمستخدمين نيابة عنهم.



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

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


تعرف على كيفية استخدام واجهات برمجة التطبيقات كمطور(Développeur).

بصفتك مطورًا ، سيُطلب منك بالتأكيد استخدام واجهات برمجة تطبيقات مختلفة في حياتك المهنية أو لمشاريعك الشخصية. هناك نوعان رئيسيان: واجهات برمجة التطبيقات الخاصة وواجهات برمجة التطبيقات العامة. دعونا نرى ما يدور حوله كل شيء! 🕵🏻‍♀️

واجهات برمجة التطبيقات الخاصة API.

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

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

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

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

وبالتالي ، يمكنني فقط تعديل معلوماتي الشخصية في ملفي الشخصي .

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

واجهات برمجة التطبيقات العامةAPI.

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

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

إذا كنت مغني وكاتب أغاني وترغب في إنشاء موقع ويب للمعجبين للاستماع إلى الموسيقى الخاصة بك ، بدلاً من إنشاء مشغل الموسيقى المتدفق الخاص بك ، يمكنك استخدام Spotify API والاستماع إلى الموسيقى الخاصة بك مباشرة. على موقع الويب الخاص بك! 🎵

تريد إنشاء صفحة معجبين لمسلسلك التلفزيوني المفضل (Kaamelot ، بالطبع) ، تجمع جميع حسابات Instagram لممثلين مختلفين على موقع ويب واحد - خمن ماذا ، هناك Instagram API لمساعدتك على القيام بذلك! 🌅

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

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

حدد مزايا واجهة برمجة تطبيقات API REST.

حسن ! الآن بعد أن عرفت ما هي API ، دعنا نتحدث عن ما يشكل REST API. سنستخدم REST في هذه الدورة لأنها الأكثر شعبية. إنه أحد معايير بناء API الأكثر منطقية وفعالية والأكثر استخدامًا. ووفقًا لتقرير حالة تكامل واجهة برمجة تطبيقات Cloud Elements لعام 2017 ، فإن 83٪ من واجهات برمجة التطبيقات هي REST APIs.

افهم جميع مزايا REST

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

نستخدم الصفة RESTful لوصف واجهات برمجة تطبيقات REST. جميع واجهات برمجة تطبيقات REST هي نوع واحد من واجهات برمجة التطبيقات - ولكن ليست كل واجهات برمجة التطبيقات مريحة!

تعتمد واجهات برمجة التطبيقات RESTful على بروتوكول HTTP لنقل المعلومات - وهو نفس البروتوكول الذي يعتمد عليه اتصال الويب! لذلك عندما ترى http في بداية عنوان URL ، مثل http://twitter.com - يستخدم متصفحك HTTP لتقديم طلب من موقع الويب هذا إلى الخادم. يعمل REST بنفس الطريقة!

هناك ستة إرشادات معمارية رئيسية لواجهات برمجة تطبيقات API REST. دعونا نرى ما يدور حوله كل شيء:

1: فصل خادم العميل

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

العميل هو الشخص الذي سيستخدم API. يمكن أن يكون تطبيقًا أو متصفحًا أو برنامجًا. على سبيل المثال: بصفتك مطورًا ، قد تستخدم واجهة برمجة تطبيقات Twitter. كما قلت من قبل ، يمكن أن يكون العميل أيضًا برنامجًا أو متصفحًا ، سواء كان Chrome أو Safari أو Firefox. عندما يزور متصفح twitter.com ، فإنه يقدم طلبًا إلى Twitter API ويستخدم البيانات من واجهة برمجة التطبيقات حتى تتمكن من الوصول إلى أحدث التغريدات.

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




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

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

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

2: عديم الجنسيةStateless.

أحد الجوانب الفريدة الأخرى لواجهات برمجة تطبيقات REST هو أنها عديمة الحالة - عديمة الحالة ، باللغة الفرنسية - مما يعني أن الخادم لا يحفظ أيًا من الطلبات أو الاستجابات السابقة.

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

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

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

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

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

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

3: مخبأ casheable

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

يمكن أن يؤدي التخزين المؤقت الفعال إلى تقليل عدد المرات التي يتعين على العميل والخادم التفاعل فيها ، مما يمكن أن يساعد في تسريع وقت التحميل للمستخدم! 👏

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

4: Uniforme interface (واجهة موحدة)


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

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

5: نظام الطبقات 

لا يتمتع كل مكون يستخدم REST بإمكانية الوصول إلى مكونات تتجاوز المكون المحدد الذي يتفاعل معه.

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

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

6: كود عند الطلب

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

اكتشف بدائل لـ REST APIs

REST هو نوع واحد فقط من API. هناك بدائل ستجد من المفيد معرفتها ، بما في ذلك SOAP APIs.

يرمز SOAP إلى بروتوكول الوصول إلى الكائنات البسيط ، أو بروتوكول الوصول إلى كائن بسيط ، باللغة الفرنسية. على عكس REST ، يُنظر إليه على أنه بروتوكول وليس أسلوب معماري.

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

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



إرسال تعليق

comments (0)

أحدث أقدم