-

فهم واجهات برمجة التطبيقات (APIs)

فهم واجهات برمجة التطبيقات (APIs)
(اخر تعديل 2025-01-06 23:37:55 )

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

ربط البرمجيات عبر APIs

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

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

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

كيف توفر APIs البيانات للتطبيقات

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

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

https://newsapi.org/v2/everything?q=Android&from=2024-12-23&sortBy=popularity&apiKey=[USER_API_KEY]

نظرًا لأن هذه API تستخدم بروتوكولات HTTPS، يُستخدم عنوان URL لطلب البيانات. يحدد URL الموضوع q=Android، ونطاق التاريخ from=2024-12-23، وطريقة الترتيب sortBy=popularity، ومفتاح API apikey=[USER_API_KEY]. يكون مفتاح API غالبًا عبارة عن سلسلة طويلة مكونة من أحرف وأرقام. يقوم المطور بإدراج عنوان URL في كود تطبيقه، عادة باستخدام لغات برمجة مثل JavaScript أو Python.

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

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

  • Unsplash لديها API يتيح لك استرجاع صور مجانية.
  • Clearbit لديها API يتيح لك استرجاع شعارات الشركات.
  • Discord لديها API تتيح لك إنشاء واستخدام الروبوتات المخصصة.
  • ILovePDF لديها API تتيح لك استخراج النصوص، وتحريرها، وأداء إجراءات أخرى تتعلق بـ PDF.
  • CloudConvert لديها API تتيح لك تحويل العديد من تنسيقات الملفات.
  • Ollama لديها API تتيح لك تشغيل نماذج اللغة الكبيرة (LLM) على جهازك المحلي.
  • Notion لديها API تتيح لك إنشاء وإدارة المحتوى ومزامنة البيانات.
  • NASA لديها API تمنح المطورين الوصول إلى ثروة من البيانات المتعلقة بالفضاء والعلوم.

الأخلاقيات وسوء استخدام بيانات API

لكن هذا لا يعني أنه ليست هناك ثغرات أمنية ومشاكل أخرى مع الوصول إلى بيانات API. تذكرنا كريس توماس بفضيحة Cambridge Analytica، حيث تم اكتشاف أن شركة التحليلات والاستشارات خدعت المستهلكين وجمعت بيانات Facebook من 50 مليون ملف شخصي باستخدام API الخاصة بـ Facebook.

استخدمت Cambridge Analytica بيانات تم جمعها بشكل غير قانوني عبر API الخاصة بفيسبوك لبناء ملفات "سيكوجرافية" عن المستخدمين (تشغيل حملات تسويق سياسي مستهدفة بأكثر من 1.5 مليار انطباع) لإقناعهم بالتصويت لصالح ترامب في انتخابات 2016. وافقت لجنة التجارة الفيدرالية على أن Cambridge Analytica انتهكت قانون لجنة التجارة الفيدرالية من خلال السلوك الخادع في تصويت بالإجماع 5-0. اعتذر مارك زوكربيرغ للمستخدمين عن "خرق الثقة"، متعهدًا بتقييد وصول API والبيانات المتاحة من خلالها.

لا تعتبر Facebook الوحيدة عندما يتعلق الأمر بمشاكل API. بينما نفذت قيود API الجديدة في عام 2018، أفاد TechCrunch عن خطأ في API الخاص بـ Twitter الذي طابق 17 مليون رقم هاتف مع حسابات مستخدميها. في نفس العام، تم التغاضي عن ذلك عندما كشفت API الخاصة بـ Google+ البيانات الخاصة بأكثر من 500,000 مستخدم لمطوري الطرف الثالث. سمحت ثغرة في API الخاص بـ TikTok في عام 2020 للباحث في مجال الثغرات الأمنية محمد تاسكيران بأخذ السيطرة على حساب بنقرة واحدة.

مستقبل APIs في التكنولوجيا الحديثة

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