واجهة برمجة التطبيقات
واجهة لبرمجة التطبيقات أو بيئة برمجة التطبيقات وصفٌ العناصر البرمجيّة حسب وظائفها، و مدخلاتها و مخرجاتها. الهدف الرئيسيّ منها توفير قائمة من الوظائف المستقلّة تماماً عن الآلية التي نفّذت بها، لتتيح للآخرين التواصل معها من خلال أيّ آلية أخرى.
هناك نوعان من ال(API):
أحدهما يعتمد على لغة البرمجة ؛ بمعنى أنه متاحٌ فقط في لغة برمجة معينة، ويقوم على استخدام syntax وعناصر هذه اللغة لجعله ملائما للإستخدام في هذا السياق.
و الأخر مستقل عن اللغة وهذا يعني أنه مكتوب بطريقة تتيح له أن يستخدم في العديد من لغات البرمجة (عادةً an assembly/C-level interface) وهذا النمط مطلوب في أنواع الواجهات البرمجية API المستخدمة في service غير المرتبطة بعملية معينة process، أو نظام تشغيل وعادة ما تكون متاحة كروتين منفصل.
مثال عن النوع الثاني هو على سبيل المثال ،الموقع الذي يعرض أماكن تواجد المطاعم في مكان ما يتيح للمستخدم بوضع مجموعة معلومات إضافية على نفس خريطة الموقع التي جلبت من خرائط جوجل (خرائط جوجل)، وذلك بسبب ان خرائط جوجل تحتوي على هذا النوع والذي يسمح بعمل هذا الشيء.واجهة برمجة التطبيقات الخاصة بخرائط جوجل تتحكم بماهية المعلومات التي يمكن للمستخدم استغلالها وما الذي يستطيع ان يعمل بهاوكذلك ليس على الخرائط الخاصة لجوجل فقط بل أنها تستخدم في العديد من المهام الأخرى مثل ربطها بموقع إلكتروني لإتاحة فرصة عملية الشراء من خلال الموقع بالفيزا او كروت الــ ATM.
إنشاء واستخدام واجهات برمجة التطبيقات هو موضوع رئيسي في البرمجة المعاصرة.تستفيد التطبيقات عادة من العديد من واجهات البرمجة؛ المنفذة من طرف المكتبات البرمجية التي يمكن أن تستخدم بدورها واجهات برمجة أخرى.
في البنيات الخدمية يمكن للتطبيقات أن تعتمد على الميزات التي تقدمها برامج طرف ثالث عن طريق واجهات برمجة منفذة من طرف خدمات الويب.
واجهة البرمجة تسمح على سبيل المثال للبرنامج بالوصول إلى الخدمات التي يقدمها نظام التشغيل الذي يستضيف البرنامج. واجهة socket هي مثال كلاسيكي من واجهة البرمجة، تسمح للبرنامج من استغلال إمكانيات طبقة الشبكة لنظام التشغيل.
في صناعة البرمجيات المعاصرة، تستخدم تطبيقات الكمبيوتر عادة العديد من برامج طرف ثالث على سبيل المثال نظام التشغيل، المكتبات القياسية و نظام خوادم التطبيقات. كل من هذه المنتجات لديها واجهة البرمجة الخاصة بها. وبالتالي، كل مبرمج يشارك في تطوير هذه المنتجات، فهو يشارك أيضا، بوعي أو لا، في تجارة واجهات البرمجة.من وجهة نظر تجارية، الواجهات البرمجية هي عبارة عن عقد يصف فيه المقاول وظائف العرض الذي يقدمه و ميزاته و حدوده.
البناء عن طريق تجميع البرامج يتطلب أن تعرف الشركة المصنعة كيفية تفاعل الأجزاء المكونة له، و الذي يقوم بعملية التجميع لا يحتاج إلى معرفة تفاصيل عمل كل جزء طالما أنه يعرف واجهة برامجها و هي الحد الأدنى الذي يحتاج المبرمج إلى معرفته ليكون قادر على استخدام البرمجيات الأخرى. أما لإستعمال وظيفة، فمن الضروري أن يعرف إسمها، متغيراتها و نوع النتيجة.
يتم توزيع واجهات البرمجة في السوق كمنتج برمجيات عادي يتم تحسينه بشكل منتظم. تنفيذ الوظائف التي تستعمل عن طريق واجهات البرمجة يمكن أن يتغير بشكل منتظم أيضا، مع الحفاظ على الواجهة وفقا للعقد.
قد يكون لواجهات البرمجة وظائف متعددة. على سبيل المثال،في J2EE، هناك الوظائف التالية:
ويمكن استخدام واجهات برمجة التطبيقات لتبسيط الوصول إلى واجهات برمجة تطبيقات أخرى.
يمكن لواجهات البرمجة أن تحمل و تسير بيانات وصفية.
أمثلة:API بيانات 9i Oracle و البيانات الوصفية العلائقية SAP.
مثال جافا: API للوصول و معالجة البيانات المسجلة في مصدر بيانات.
مثال: البيانات الوصفية في API ل SAS
مثال: DB2 مكعب
مثال: تحميل Loading metadata to Livelink using Bulk Loader API's