يصادف المبرمج خصوصاً المبتدئين منهم مجموعة من المصطلحات والمرادفات في عالم البرمجة التي قد تشكل عائقاً لديهم في فهمها، خصوصا لشح المصادر الحربية التي تشرح لك تلك المصطلحات بشكل أدق بلغتك الأم، فتلجأ في الأخير لمنصات مثل ويكيبيديا أو منصات برمجية من أجل التعرف أكثر على ذلك المصطلح واستيعابه، لكن عائق اللغة دائماً ما يحيل بينك وبين استكشاف المصطلح الجديد.
لذا، قررنا في قسم البرمجة على موقعنا أكوا ويب، أن نساعدكم في استكشاف وفهم مجموعة من المصطلحات البرمجية من أجل تسهيل الوصول إليها، كما أننا سنقوم بإطلاق قسم جديد باسم " مصطلحات برمجية " يعينك على استكشاف أكثر المصطلحات استخداما في المجال البرمجي مع شرحها الكامل والوافي.
وأول شروحاتنا ستكون حول الـ API، أحد أشهر وأبرز المصطلحات حاليا في مجال الإنترنت، ومن الصعب أن تبدأ في البرمجة دون أن تصادف هذا المصطلح، فما هو الـ API إذن؟ و ما وظيفته واستخداماته؟ وهل سأحتاجه في مساري البرمجي؟
ما هو الـ API بأبسط مفاهيمه ؟
الـ API هو اختصار لعبارة Application Programming Interface، وربما يمكننا ترجمتها باللغة العربية إلى الواجهة البرمجية للتطبيق. يهدف الـ API إلى أن يكون وسيط بين برمجيتك الخاصة وبرمجية أخرى، لهذا يكون في معظم الأحيان خدمة طرف ثالث ( أي العضو الثالث إلى جانب موقعك و الموقع الذي تتواصل معه )، لكن لأي غرض سيتوسط به الـ API ؟
الإجابة ببساطة هي إرسال واستقبال المعلومات بين برمجيتك أنت، وبرمجية أخرى غير تابعة لك ( سنرى أمثلة لاحقا )، يمكنك اعتباره وسيطاً لجلب المعلومة وإرسالها، كما لو كان ساعي البريد الذي يأخذ المعلومة من برمجيتك الخاصة ويرسلها لبرمجية أخرى، أو العكس.
الـ API بشرح برمجي أكثر
يسمى بشكل كامل بالـ RESTful API، وذلك لأن الـ API يقوم بإجراء مجموعة من الطلبات (Requests) باستخدام بروتوكول HTTPS. إن تعاملت مع الـ PHP من قبل، فهي أشبه بخاصيتي GET و POST. من خلال الـ RESTful API يمكنك إرسال مجموعة من المعلومات ( في الغالب Parameters في الرابط مثل example.com?data=1 )، وبعدها استقبال لائحة بكل المعلومات التي طلبتها من الموقع، الإستقبال يتم إما على شاكلة XML ( نادرا أو قليلا )، لكن حاليا تستقبلها على شاكلة كود Json.
الـ API في الغالب يكون مجرد رابط تابع لموقع محدد ( مثلا ip-api.com/json التابع لموقع IP API مثلا )، هذا الرابط يمكنه أن يتعامل مع الطلبات من خلال إرسالها واستقبالها، فعند النقر عليه مثلا سيوفر لك معلومات حول الـ IP خاصتك وموقعك الجغرافي وسيُظهرها في المتصفح على شكل JSON، كما يمكن إضافة مجموعة من المعلومات او Parameters التي يمكنك إرسالها مع الرابط من أجل تخصيصه أكثر ( جرب مثلا النقر على ip-api.com/json/?fields=countryCode لتحصل في النتيجة فقط على كود البلد وليس كل المعلومات )، ثم بعدها ستحصل على مجموعة من البيانات على شكل Json التي يمكنك التعامل بها وسط برمجيتك الخاصة بعدة لغات مثل Javascript.
لماذا نستخدم الـ API ؟
استخدامات الـ API تختلف حسب ضرورياتك البرمجية، ويوجد العديد من الإستخدامات المتعلقة بالـ API أبرزها:
- اختصار العمل عليك: تخيل مثلا لو أردت استخراج عناوين الـ IP للمستخدمين، سيكون الأمر صعب وستحتاج إلى تطوير برمجيتك من الصفر التي تتعامل مع هذا الهدف، لذا سيكون أسهل وأفضل استخدام مثل الـ API السابق، والقيام بالعمل كاملا فقط من خلال سطرين برمجيين وربما أقل ان كنت تستخدم تقنيات متقدمة ( مثلا Axios في الـ Vuejs ).
- تضمين برمجيات شهيرة في برمجيتك الخاصة: هل صادفت يوماً موقعا يتيح لك التسجيل عبر فيسبوك أو تويتر او جوجل؟ يمكنك أنت أيضا فعل ذلك، بحيث يمكنك إدراج التسجيل عبر خدمات خارجية مثل فيسبوك في موقعك من خلال الـ API الخاص بالشركة، هذا سيكون أسهل من صناعة واجهة للتسجيل والدخول في موقعك. الأمر سيان لخدمات أخرى تريد تضمينها وسط موقعك لاختصار الجهد والعمل.
- جلب / إرسال محتوى: يوجد مواقع شهيرة تقوم بجلب محتوى مواقع وتضمينها داخله، على سبيل المثال منصة Flipboard، فهذه المنصة الشهيرة والعالمية مبنية فقط على مجموعة من الـ API's التي تقوم بالبحث في مواقع شهيرة وجلب مقالاتها ومواضيعها عليها واستعراضها في مكان واحد.
- التعامل مع مهام صعبة أو بسيطة أحيانا: لكن أحيانا قد تود فقط استخدام الـ API للتعامل مع المهمات الصعبة أو المكلفة، أو المهمات التي قد تبدو سهلة للغاية أحيانا، كمثال لذلك يوجد API من Cloudinary يتيح لك اختزال مساحة الصور قبل إضافتها في موقعك، وهو API جيد لمن لا يملك مساحة تخزين كبيرة في موقعه ويريد نقص مساحة الصور قبل رفعها. مثل هذه المهات ستكون أسهل لو استطعت اختصارها في API بدل برمجتها من الصفر.
كيف أجد API's مناسبة لي؟
- موقع Public API: موقع يجمع مئات بل الآلاف من الـ API's من مختلف المواقع والمنصات لاستخدامها لأغراضك الشخصية بكل سهولة، رابط الموقع .
- موقع Free For Devs : سبق وشرحنا موقع Free For Devs كواحد من أفضل المواقع البرمجية على الإطلاق، يضم الموقع قسماً مخصصا لاستعراض مجموعة كبيرة من الـ API's، رابط الموقع .
- موقع Github: يضم موقع Github صنف مواضيع (Topics) متعلقة فقط بالـ API's، يمكنك متابعتها لاستكشاف جديد الـ API's في العالم وأيضا استخدامها، رابط الموقع.
وختاماً
نشكرك على متابعتك لهذا المقال، ونتمنى أن يكون في المستوى و أن تكون بنهاية هذه الأسطر قد فهمت الـ API، ولا تنسى مشاركتنا في التعليقات أي مفاهيم برمجية تود منا شرحها من أجلك بطريقة أفضل وأسهل.
a mazing