ما هي واجهة برمجة التطبيقات (API)؟

مايكل تشن | كاتب أول | 24 فبراير 2025

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

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

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

واجهة برمجة التطبيقات (API) هي مجموعة من القواعد والبروتوكولات التي تسمح للتطبيقات بتبادل البيانات وتنفيذ الإجراءات والتفاعل بطريقة موثقة جيدًا. عند تقديم طلب—لتحديث الطقس، على سبيل المثال—تقوم واجهة برمجة التطبيقات بمعالجة الطلب وتنفيذ الإجراءات اللازمة وإرجاع استجابة، عادةً بتنسيق قياسي مثل تلك المحددة بواسطة JSON أو XML.

النقاط الرئيسة

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

شرح واجهات API

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

بعبارات بسيطة، هناك ثلاثة أطراف تشارك في عملية التبادل، على النحو التالي:

  • العميل: الطرف الذي يقدم الطلب
  • الخادم: الطرف الذي يستوفي الطلب
  • API: الوسيط الذي يربط الاثنين بطريقة موثقة بشكل جيد ويمكن التنبؤ بها

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

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

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

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

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

  • نقاط النهاية. عناوين URL محددة تحدد مكان إرسال البيانات والطلبات.
  • الأساليب. تعليمات مثل GET لاسترجاع البيانات وPOST لإرسال البيانات وPUT لتحديث البيانات وDELETE لإزالة البيانات.
  • المعلمات. التفاصيل المحددة المطلوبة للطلب، مثل موقع بيانات الطقس أو بيانات اعتماد تسجيل الدخول للوسائط الاجتماعية.
  • الردود. تنسيق البيانات التي تم إرسالها مرة أخرى بواسطة التطبيق، مثل JSON أو XML.

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

  • عنوان URL لنقطة انتهاء API
  • أسلوب HTTP
  • أية معلمات ضرورية

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

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

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

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

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

مكونات API

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

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

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

مزايا واجهات برمجة التطبيقات

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

في حالة انقطاع خدمة واحدة، يمكن لمعظم التطبيقات الاستمرار. تشمل المزايا الإضافية ما يلي:

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

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

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

وتشمل التحديات المحددة التي يتعين التصدي لها ما يلي:

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

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

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

أخطاء API الشائعة

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

الأخطاء الأخرى التي يجب تجنبها تشمل:

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

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

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

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

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

أنواع واجهات برمجة التطبيقات

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

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

أمثلة على واجهات برمجة التطبيقات

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

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

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

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

حالات استخدام API

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

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

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

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

بروتوكولات API

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

تشمل الأنماط البنيوية الشائعة ما يلي:

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

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

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

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

هناك ثلاثة عناصر متضمنة.

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

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

يستخدم تطبيق العميل واجهات برمجة التطبيقات لطلب البيانات أو الوظائف من تطبيق الخادم. على سبيل المثال، يستخدم تطبيق rideshare واجهة برمجة تطبيقات خدمة الطقس لضبط الأسعار عندما تمطر أو أعلى من أو أقل من حدود درجة حرارة معينة.

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

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

واجهات برمجة التطبيقات والتحول الرقمي

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

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

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

الطريقة التي تساعد Oracle بها

توفر Oracle Cloud Infrastructure (OCI) مجموعة شاملة من الخدمات لإدارة دورة حياة واجبات برمجة التطبيقات. الأدوات المضمنة تجعل من السهل على فرق المطورين التعاون في عمل النماذج الأولية واجهات برمجة التطبيقات واختبارها والتحقق منها. توفر Oracle Cloud Infrastructure API Gateway التكامل والتسريع والحوكمة والأمان للأنظمة المستندة إلى واجهة برمجة التطبيقات وSOA، مما يتيح للفرق إدارة وتقديم واجهات برمجة تطبيقات الويب بشكل آمن. بالإضافة إلى ذلك، تسمح خطط الاستخدام والاشتراكات لعوامل تشغيل واجهة برمجة التطبيقات بمراقبة واجهات برمجة التطبيقات (API) وتحقيق الدخل منها.

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

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

الأسئلة الشائعة حول واجهة برمجة التطبيقات

ما الأنواع الأربعة لواجهات برمجة التطبيقات؟

الأنواع الأربعة لواجهات برمجة التطبيقات عامة (يمكن لأي شخص استخدامها)، خاصة (تم تطويرها داخليًا داخل المؤسسة)، شريك (تم تطويره للعمل بين البرامج من المؤسسات المعنية)، ومركبة (أنواع مختلفة من واجهات برمجة التطبيقات المستخدمة معًا).

ما هو مثال على واجهة برمجة التطبيقات في الحياة الحقيقية؟

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

هل إنشاء واجهة برمجة تطبيقات أمر سهل؟

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

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

يشير REST، الذي يشار إليه أحيانًا باسم RESTful، إلى "نقل الدولة التمثيلية" وهو بروتوكول قياسي يستخدم لتطوير خدمات الويب. توفر خدمة REST مجموعة من القواعد والإرشادات للسماح للتطبيقات المختلفة بالاتصال عبر الإنترنت بطريقة قابلة للتوسع وفعالة. يحدد REST كيفية تقديم التطبيقات للطلبات—عادةً GET وPUT وPOST وDELETE—من خلال HTTP باستخدام HTML أو XLT أو Python أو JSON أو PHP أو نص عادي دون الاعتماد على إنشاء علاقة محددة بين العميل والخادم.