لعلك تتسأل ماهو API ؟ API او Application Programming Interface وباللغة العربية واجهة برمجة التطبيقات.
يمكن القول ان API ببساطة هو مجموعة من البرمجيات التى تسمج لتطبيقين مختلفين التواصل والتفاعل مع بعضهم البعض.
عند استخدام API، يمكن للمطورين استخدام وظائف محددة أو الحصول على بيانات محددة من تطبيق آخر أو خدمة ويب دون الحاجة إلى معرفة كامل التفاصيل عن كيفية عمل هذا التطبيق أو الخدمة. وبالتالي، يمكن للمطورين بناء تطبيقات جديدة تعتمد على البيانات أو الخدمات التي توفرها API بدلاً من إعادة بناء كل هذه الوظائف من الصفر.
مثال من الواقع لتقريب فكرة اخفاء التفاصيل او Encapsulation, عندم تنتج شركات محركات سيارات محرك جديد فانها تقوم بتغليف هذا المحرك وتقوم بطرحه بالسوق لتستفيد منه الشركات لبناء منتاجاتها الخاصة كالسيارات مثلا وقد تستخدمه الشركة بدون الدخول فى تفاصيل تصنيعه فما يهم الشركة هو كيف تستخدم المحرك لبناء منتجها وليس كيف صُنع المحرك .
هذا بالضبط ما يحدث عندما يستخدم المطور API فهو يهتم بالطريقة التى يستخدمه بها وليس بتفاصيل عمله.
محتوي المقال
تطبيقات عملية على API’s
يوجد الكثير من الامثلة والتطبيقات على API’s مشهورة نصادفها كل يوم مثلا الفيسبوك يتيح API للمواقع لتسجيل الدخول عن طريقه بدون الحاجة إلى بناء نظام تسجيل دخول من الصفر , فانت عندما تريد اضافة هذه الاضافة إلى موقعك لن تطلع على كيفية بنائها ولكن ما يهمك كيفية استخدامها لاضافتها لموقعك او تطبيقك , ويوجد الكثير من الامثلة الاخرى لل API مثل خرائط جوجل Google Maps التى تسمح للمطورين بعرض اجزاء من الخرائط لامكان معينة على تطبيقهم او موقعهم .
مثال اخر عندم تقوم بشراء شئ على الانترنت من موقع معين فهذا الموقع يستخدم API الخاصة بشركة VISA ليقوم بالتواصل معه وخصم المال من بطاقتك .
مثال اخر ولكن هذه المرة من تطبيقات سطح المكتب , فاذا اردت بناء برنامج وهذا البرانامج يريد بعض التحكم فى جهاز الكموبيوتر فانه يستخدم API التى توفرها نظم التشغيل للتحكم فى الجهاز بدون الحاجة إلى الكثير من العمل للحصول على هذه الصلاحيات والدخول فى البرمجة في مستويات أدنى وتقوم بإستخدام لغة Assembly او التجميع لكي تقوم بهذه العملية .
مثال اخير MySQL API فى لغة PHP فانت عندم تكتب استعلام مثل :
mysql_query('SELECT * FROM tablename');
فكل ما يهمنا هو ان الدالة للاستعلام من قاعدة البيانات ولكن الكثير من التفاصيل مخبأة عن المطورين
- للتعرف اكثر على قواعد البيانات يمكنك متابعة المقالة هنا
- للتعرف اكثر على PHP يمكنك متابعة المقالة هنا
انواع API من حيث امكانية الوصول
هناك ثلاث طرق لسياسات الوصول إلى API :
- خاص Private : وهو API للاستخدام الداخلي فقط. هذا يمنح الشركات أكبر قدر من التحكم في الوصول إلى API الخاصة بهم.
- شريك Partner : يتم مشاركة API من هذا النوع مع شركاء أعمال محددين.
- عام Public : هذا النوع من سياسة الوصول إلى API يكون متاح للجميع وبالاسفل قائمة ببعض هذه ال API’s.
قائمة ب API’s مجانية وعامة يمكنك استخدامها فى مشروعك القادم
هذه القائمة الرائعة على Github تحتوي على الكثير من API’s المجانية التى يمكنك استخدامها فى تطوير الويب فى مشاريعك القادمة.
واجهات برمجة تطبيقات REST
تم تصميم خدمات الويب فى الأساس باستخدام SOAP وهو بروتوكول للتواصل بإستخدام بروتوكول HTTP وصيغة XML , على الرغم من ذلك فإن معظم تطبيقات الويب الحديثة تستعمل واجهة البرمجة بإستخدام REST.
تم طرحه فى الأساس عام 2000 على يد Roy Fielding , وهو مجموعة من الهياكل و مبادئ التصميم المستخدمة فى بناء النظم الموزعة وتضمن تواصل هذه النظم وتبادل أي نوع من أنواع البيانات مثل (الصور والفيديوهات وإلخ) ولعل أكثر ما ساهم فى إنتشار REST هو السهولة النسبية فى بناء التطبيقات والمرونة الكبيرة التى يتمتع بها.
في واجهة برمجة تطبيقات REST ، يمكن أن يكون المورد أي شيء تقريبًا ، على سبيل المثال قائمة بالتغريدات على موقع تويتر او حالة الطقس فى بلد معين. كل من هذه الموارد قابل للعنونة ، والذي في حالة واجهات برمجة تطبيقات REST المستندة إلى الويب يكون عنوان URL ، فعلى سبيل المثال https://api.twitter.com/1.1/users/show?screen_name=twitterdev
حينما يقوم المستخدم لل API بطلب العنوان يقوم API بالرد باي نوع من انواع الصيغ مثل JSON او صورة او حتى صفحة Web.
يوفر API ميزة إرسال البيانات للتطبيقات الأخرى ليعالج التطبيق البيانات بالطريقة التى يريدها مما يوفر مرونة كبيرة فى إستخدام البيانات ولكن هذا ايضًا له اثار جانبية حيث أنه ابطئ من حالة معالجة البيانات ثم إرسال المنتج النهائى للمستخدم.
و يوجد الكثير من الامثلة الاخرى ولكن كانت هذه امثلة شهيرة ولكن مفهوم API الشامل غير مقصور على هذه الامثلة ولكن كما ذكرنا فهو بشكل عام اخفاء وتغليف اجزاء معينة لاستخدامها بطريقة او باخرى.
تأمين API’s
تأمين APIs هو عملية حماية وتأمين الواجهات البرمجية API التي تستخدمها التطبيقات والمستخدمون للوصول إلى البيانات والخدمات. يعد تأمين الAPIs أمرًا حيويًا للحفاظ على سلامة وخصوصية البيانات، والحد من فرص الاختراق والاحتيال.
وتشمل أساليب تأمين APIs العديد من الأدوات والتقنيات المختلفة، بما في ذلك:
- تشفير الاتصال encryption: يتم تشفير الاتصال بين التطبيق والAPI باستخدام بروتوكول HTTPS، والذي يستخدم تقنية التشفير SSL/TLS.
- تعيين مفاتيح API: يتم تعيين مفاتيح API للتحقق من صحة الطلبات لل API، والتي يتم تشفيرها للحفاظ على سرية البيانات.
- المصادقة والترخيص: يتم استخدام برتوكولات المصادقة والترخيص مثل OAuth و OpenID Connect لتأمين الوصول إلى البيانات وتحديد الصلاحيات التي يحق للمستخدمين الوصول إليها فبعض المستخدمين يملكون صلاحية لا يملكها أخرون علي سبيل المثال يستطيع المديرين الوصول إلى بيانات لا يستطيع المستخدم العادى الوصول إليها.
- التحقق من صحة البيانات: يتم التحقق من صحة البيانات المدخلة في الAPI وفحصها للتأكد من أنها لا تحتوي على أي برامج ضارة.
- إدارة الهجمات: يتم استخدام أدوات إدارة الهجمات مثل وحدات التحكم في الوصول والحماية من الاختراق للحفاظ على أمان الAPI وحمايته من الهجمات الخبيثة.
بشكل عام، يجب على المطورين اتباع الممارسات الأمنية الصارمة والالتزام بالمعايير المتعلقة بتأمين الAPIs لتوفير بيئة آمنة وموثوقة للمستخدمين والتطبيقات.
ماهو API Key
API Key أو مفتاح API هو عبارة عن سلسلة من الأحرف أو الأرقام الفريدة التي تُستخدم للمصادقة والتحقق من صحة الوصول إلى واجهة برمجة التطبيقات (API) المقدمة من قِبل خدمة معينة.
ويستخدم API Key كعنصر أماني مهم لضمان عدم السماح لأي شخص بالوصول إلى مصادر البيانات أو الموارد الموجودة في الواجهة البرمجية بدون صلاحيات مسموح بها.
تنفيذ API بلغة PHP
من القائمة المجانية لل API’s لنختار واحدة منها ونحاول تطبيقه سويًا بإستخدام لغة PHP, على سبيل المثال هذا ال API المجانى http://api.arcsecond.io وهو مختص بعلم الفلك.
الآن عند زيارة الموقع الرسمى ل API ستجد مجموعة من الراوبط التى تحتوي على كل روابط API وتقوم بتوثيق كل شئ عنها.
لناخذ رابط Swagger على سبيل المثال https://api.arcsecond.io/schema/swagger
ونختار على سبيل المثال Activities List
https://api.arcsecond.io/schema/swagger/#/activities/activities_list
سنجد الرابط الخاصة بِActivies تمدنا بالكثير من المعلومات على سبيل المثال ماذا يعرض API هذا ويتضح انه يعرض مجموعة من الاحداث الخاصة بالفلك.
ويتضح بعض المعلومات المهمة الأخرى مثل ان هذا API من النوع GET اي يمكنك الوصول إليه من خلال المتصفح جرب https://api.arcsecond.io/activities فى متصفحك ستجد مجموعة كبير من النتائج.
بعد ذلك سنجد فى الجزء الخاص ب Parameters او معاملات API انه يقبل اثنين من المعاملات وهم page و page_size وكما يتم وصفهم على ان page هو رقم الصفحة للنتائج المعروضة و page_size عدد النتائج لكل صفحة على سبيل المثال ويمكنك تجريبه.
سنقوم الآن بكتابة كود بسيط بإستخدام PHP لجلب كل الانشطة.
<?php // URL of the Arcsecond API endpoint $api_url = "https://api.arcsecond.io/activities/"; // Make a GET request to the API $response = file_get_contents($api_url); // Decode the JSON response into a PHP array $data = json_decode($response, true); // Access the data from the API print_r($data); ?>
فى الكود السابق نقوم بتنفيذ API السابق ثم نقوم ببساطة بقراءة النتائج.
بالطبع هذا التمثيل بسيط جدًا لاحظ وقد اغفلنا بعض الأشياء المهمة والتى سنتاولها بالتفصيل فى درس منفصل.
إستخدام Postman
Postman هو أداة قوية للتفاعل مع واجهات برمجة تطبيقات الإنترنت (APIs) القائمة على REST. يسمح للمطورين بإرسال طلبات HTTP إلى API وعرض الإجابات. مع Postman، يمكنك بسهولة اختبار API قمت بإنشاءه بنفسك، وتجربته مع مختلف الحالات والمعلمات.
او حتى إستخدامه فى تجرب API معين قبل البدء فى تنفيذه باللغة البرمجية التى تعمل بها على مشروعك.
Postman لديه واجهة مستخدم سهلة وتجعل من السهل إرسال الطلبات وعرض الإجابات بطريقة بسيطة. كما يوفر العديد من الميزات المتقدمة الاخرى.
Postman متاح على شكل اضافة للمتصفح أو كتطبيق سطح المكتب على انظمة التشغيل المختلفة. هو مستخدم على نطاق واسع من قبل المطورين، ومسئولى الجودة والإختبار فى الشركات.
يمكنك تحميل من هنا وتحميل ما يناسبك من النسخ.
ممكن لو سمحت اركب api ده https://disease.sh/ ازاى على موقعى
من افضل الفيديوهات اللي بيشرح الAPI
من افضل الفيديوهات في شرح الAPI
https://youtu.be/MjfFHQbOzGM
دورة شرح APİ
https://www.youtube.com/watch?v=QgDhnc5QVx8&list=PLUBtxqaER05YVzGue7JpmWeJI70TlZK6e