لست مبرمجًا وأحببت أن اعرف ما هو الـ API وما هي أهميته للمواقع
وكيف يعمل، أتمنى تبسيط الشرح لغير المبرمجين
هدفي من السؤال تبسيط المعلومات لغير المبرمجين حتى نفهم منكم هذه التقنية التى اعتقد انها اصبحت مهمة جدًا
ال API هو .. application program interface
المشكلة :
لديك نظام ما .. مبرمج بلغة ما .. يتعامل مع قواعد بيانات ما .. و تريد أى شخص أن يتعامل معه دون الحاجة إلى أن يقرأ الكود الخاص بالبرنامج أو يتعلم لغة برمجة معينه أو يتعامل مع قواعد بيانات معينه
الحل :
إستخدام بعض الأمور المتفق عليها عالمياً فى شيئين :
1- توفير وسيلة authentication:
هى مثل عملية تسجيل الدخول و لكن تستخدم فيها نظام التطبيقات يحتوى على app_id و app_secret
من المعايير العالمية مفتوحة المصدر فى هذا المجال نظام oauth 2.0
مثال بال PHP :
http://brentertainment.com/...
2- توفير وسائل التواصل مع موارد نظامك :
كمثال RESTful API يستخدم HTTP Methods :
يتم من خلاله توفير روابط يتم عمل Post أو Get أو put أو Delete ب parameters أنت تحددها و عند إتمام ال Request بشكل سليم يجب أن تقوم بإرجاع Response بصيغة متفق عليها عالمياً .. أبسطها raw html كأن ترجع رقم 1 مثلاً دليل على صحة الطلب أو أكثر تقدماً ك json array أو أكثر تحديداً و تعقيداً ك XML
مثال على API يعمل بال GET و يخرج JSON
http://khashabawy.com/api/s...
هناك أنظمة WSDL و SOAP و أكثر من يستخدمونها مطورى تطبيقات ASP و JAVA و تميل إلى استخدام XML كونها لغات تحتاج فى التعامل إلى تحديد ال Data types الخاصة بالمتغيرات
شكرًا صديقي خالد على الشرح والتفاصيل هل يمكن ان تذكر لي بعض سلبيات هذه الخدمة إن وجدت؟
وكيف نتجنبها!
خشباوى :)
لا يوجد سلبيات بل بالعكس الموضوع ممتاز لمن يبرمج ال API ... لا يوجد user interface ... فقط PHP أو أى كانت اللغة التى تستخدمها
و لكن يجب أن يكون ال API .. كما يقولون Rubust .. أى قوى و محدد جداً و لا يقبل بأى أخطاء من المستخدم و يغطى كافة الإحتمالات .
فكرة الـ API لا تحوي سلبيات، لكن قد تنشأ سلبيات سببها ضعف تصميم الـ API .
مثلا لنفرض أن مبرمج يريد تصميم API لعرض قائمة بالأعضاء الأكثر مساهمة في هذا الموقع مرتبة بحسب عدد المشاركات الأعلى ثم الأقل، هذه الـ API تعمل بكفاءة لكنها من وجهة نظر أخرى قد تسبب في زيادة الضغط على السيرفر في حال كان عدد الأعضاء كبيرا، ويمكن معالجة هذه المشكلة بإعادة تصميم الـ API لجلب أول 20 أو 50 سطر.
المثال السابق يبين أن السلبية قد تكمن في التصميم غير الجيد، وبالتالي التأثير قد ينعكس على الأداء وأكثر من هذا فقد يسبب خروق أمنية كما حدث في مواقع شهيرة، فرغم تصميمها الجيد للـ API وجد بعض الخبراء ثغرات استطاعوا الوصول إلى معلومات لا تقدمها الـ API بشكل مباشر بل عن طريق الثغرات، وليس بعيدا عن الموضوع ثغرات API لموقع فيسبوك .
التعليقات