ما هي ال APIs و علاقتها بتطبيقات الطرف الثالث ( third party apps ) ؟
ما هي ال APIs ؟
سؤوال مهم،
سأتكلم بشكل بسيط من واقع خبرة وبعيد عن المصطلحات العلمية!
سأبدأ بمثال،
قبل سنتين أو أكثر قمنا ببرمجة موقع نور لإنشاء قوائم تشغيل لسماع القرآن (nooor.us) .. هذا الموقع يسمح للزائر بإنشاء قوائم تشغيل حسب رغبته .. عندما يقوم الزائر بإنشاء القائمة يتم تخزين بياناتها في قاعدة البيانات بشكل طبيعي وكما هو معروف .. عندها، إذا أردنا أن نعرض أحد هذه القوائم الى زائر ما، سنقوم بالإستعلام من قاعدة البيانات لجلب بيان القائمة وعرضها بطريقة تليق بموقع الويب ..
الآن عندما فكرنا بإنشاء تطبيق لموقع نور لنظامي الآيفون والأندرويد، سنحتاج إلى جلب بيانات هذه القوائم من قاعدة بيانات الموقع لعرضها في التطبيق.. نحن نحتاج نفس البينات و لكن نريد أن نعرضها "بطريقة أخرى"، بل حتى بإستخدام لغة برمجة مختلفة عما قمنا ببرمجة الموقع الرئيسي بها.
بدون فكرة الواجهات البرمجية API أعتقد أنه لا يمكننا جلب هذه البيانات، وإنما سنضطر إلى إنشاء قاعدة بيانات جديدة للتطبيق نفسه وسنقوم بإعادة الكرّة من جديدة من تخزين لقوائم التشغيل والإستعلام وغيرها .. مما ينتج عنه مزيد من الجهد والوقت والمشاكل بكل تأكيد ..
الآن بفضل هذه التقنية أو الطريقة ، سنقوم بإستخدام بياناتنا بالطريقة التي تحلو لنا والتي تناسب لغة البرمجة التي نقوم بالبرمجة بإستخدامها ..
إذن، فكرة الواجهات API -كما أعتقد- هي أن تجلب البيانات (والخدمات) بتنسيقات تسمح لنا بإستخدامها مرة أخرى من أي مكان، وأشهر هذه النسق هي JSON و XML .
قمنا هنا مثلاً بإنشاء API يجلب لنا آخر ١٠ قوائم تشغيل قام بإنشائها الزوار في موقع نور وعرضها بتنسيق XML
إنظر لنتائج هذا الرابط :
http://www.nooor.us/api/pla...
لو تلاحظ، هذه قائمة بتنسيق بسيط تُظهر لنا آخر القوائم في موقع نور، في هذه اللحظة أي برنامج بأي لغة تقريباً يستطيع أن يقوم بجلب هذه القائمة من الرابط وإستخدامها ، إذا كانت اللغة تستطيع التعامل مع بيانات XML وأعتقد كل اللغات تفعل.
والآن، ما أهمية واجهات الـ APIs الخاصة بالمواقع والخدمات الكبيرة ،
ببساطة هي تسمح لك بإستخدام الخدمة أو بياناتها بطريقتك أنت، لتستفيد هي من الإنتشار وأنت تستفيد بأن تحصل على بيانات وخدمات جاهزة يمكنك إستخدامها مباشرة بدل أن تعيد إختراع العجلة من جديد ..
مثال أخير، عميل يطلب منك برمجة موقع له ويريد أيضاً قائمة بريدية بمواصفات ممتازة، بدل أن تقوم بإختراع العجلة وتبدأ من الصفر بإنشاء قائمة بريدية بمواصفات ممتازة وقد تنجح وقد لا تفعل، هناك خيار آخر وهو أن تقوم بإستخدام خدمات موجودة بالفعل تؤدي نفس المهمة التي تريد إنشائها، هناك الكثير من المواقع التي تقدم خدمة قوائم البريد بإمكانيات جبارة وربما أشهرهم Mailchimp.com .. من خلال الـ API الخاص بموقع Mailchimp أنت تستطيع أن تنشئ نظام قوائم بريدية من داخل لوحة تحكم موقعك وبالخصائص التي تهمك فقط وتعرضها بالطريقة التي تناسبك وتناسب مشروعك. أنت هنا بدأت من حيث إنتهت mailchimp إن صح التعبير.
بالطبع ستظل أنت مقيّد بما تسمح لك هذه الخدمة بتقديمه تقريباً ، أي مثلاً لو قامت شركة mailchimp بإيقاف ال API الخاص بها، عندها ستتوقف الخدمة عندك بالكامل كما هو متوقع.
هناك أفكار ومشاريع ربحية مبنية بالكامل على إستخدام API خدمات أخرى، مثل تطبيقات تويتر الغير رسمية وغيرها كثير ..
التعليقات