واجهة برمجة التطبيقات
واجهة لبرمجة التطبيقات أو بيئة برمجة التطبيقات (بالإنجليزية: Application Programming Interface وتختصر إلى API) وصفٌ العناصر البرمجيّة حسب وظائفها، و مدخلاتها و مخرجاتها.[1][2][3] الهدف الرئيسيّ منها توفير قائمة من الوظائف المستقلّة تماماً عن الآلية التي نفّذت بها، لتتيح للآخرين التواصل معها من خلال أيّ آلية أخرى.
محتويات
1 الأنواع
2 الإستعمالات
3 السوق
4 أمثلة لواجهات برمجة التطبيقات
4.1 أمثلة على حسب مجال التطبيق
4.2 وظائف واجهات البرمجة بلغة جافا
5 البيانات المنقولة
6 مراجع
الأنواع
هناك نوعان من ال(API):
أحدهما يعتمد على لغة البرمجة ؛ بمعنى أنه متاحٌ فقط في لغة برمجة معينة، ويقوم على استخدام syntax وعناصر هذه اللغة لجعله ملائما للإستخدام في هذا السياق.
و الأخر مستقل عن اللغة وهذا يعني أنه مكتوب بطريقة تتيح له أن يستخدم في العديد من لغات البرمجة (عادةً an assembly/C-level interface) وهذا النمط مطلوب في أنواع الواجهات البرمجية API المستخدمة في service غير المرتبطة بعملية معينة process، أو نظام تشغيل وعادة ما تكون متاحة كروتين منفصل.
مثال عن النوع الثاني هو على سبيل المثال ،الموقع الذي يعرض أماكن تواجد المطاعم في مكان ما يتيح للمستخدم بوضع مجموعة معلومات إضافية على نفس خريطة الموقع التي جلبت من خرائط جوجل (خرائط جوجل)، وذلك بسبب ان خرائط جوجل تحتوي على هذا النوع والذي يسمح بعمل هذا الشيء.واجهة برمجة التطبيقات الخاصة بخرائط جوجل تتحكم بماهية المعلومات التي يمكن للمستخدم استغلالها وما الذي يستطيع ان يعمل بهاوكذلك ليس على الخرائط الخاصة لجوجل فقط بل أنها تستخدم في العديد من المهام الأخرى مثل ربطها بموقع إلكتروني لإتاحة فرصة عملية الشراء من خلال الموقع بالفيزا او كروت الــ ATM.
الإستعمالات
إنشاء واستخدام واجهات برمجة التطبيقات هو موضوع رئيسي في البرمجة المعاصرة.تستفيد التطبيقات عادة من العديد من واجهات البرمجة؛ المنفذة من طرف المكتبات البرمجية التي يمكن أن تستخدم بدورها واجهات برمجة أخرى.
في البنيات الخدمية يمكن للتطبيقات أن تعتمد على الميزات التي تقدمها برامج طرف ثالث عن طريق واجهات برمجة منفذة من طرف خدمات الويب.
واجهة البرمجة تسمح على سبيل المثال للبرنامج بالوصول إلى الخدمات التي يقدمها نظام التشغيل الذي يستضيف البرنامج. واجهة socket هي مثال كلاسيكي من واجهة البرمجة، تسمح للبرنامج من استغلال إمكانيات طبقة الشبكة لنظام التشغيل.
السوق
في صناعة البرمجيات المعاصرة، تستخدم تطبيقات الكمبيوتر عادة العديد من برامج طرف ثالث على سبيل المثال نظام التشغيل، المكتبات القياسية و نظام خوادم التطبيقات. كل من هذه المنتجات لديها واجهة البرمجة الخاصة بها. وبالتالي، كل مبرمج يشارك في تطوير هذه المنتجات، فهو يشارك أيضا، بوعي أو لا، في تجارة واجهات البرمجة.من وجهة نظر تجارية، الواجهات البرمجية هي عبارة عن عقد يصف فيه المقاول وظائف العرض الذي يقدمه و ميزاته و حدوده.
البناء عن طريق تجميع البرامج يتطلب أن تعرف الشركة المصنعة كيفية تفاعل الأجزاء المكونة له، و الذي يقوم بعملية التجميع لا يحتاج إلى معرفة تفاصيل عمل كل جزء طالما أنه يعرف واجهة برامجها و هي الحد الأدنى الذي يحتاج المبرمج إلى معرفته ليكون قادر على استخدام البرمجيات الأخرى. أما لإستعمال وظيفة، فمن الضروري أن يعرف إسمها، متغيراتها و نوع النتيجة.
يتم توزيع واجهات البرمجة في السوق كمنتج برمجيات عادي يتم تحسينه بشكل منتظم. تنفيذ الوظائف التي تستعمل عن طريق واجهات البرمجة يمكن أن يتغير بشكل منتظم أيضا، مع الحفاظ على الواجهة وفقا للعقد.
أمثلة لواجهات برمجة التطبيقات
- جراف API للفيسبوك (Graph API Facebook)
- API جوجل مابس (Google Maps API)
أمثلة على حسب مجال التطبيق
- الرسومات ثلاثية الأبعاد 3D: برنامج OpenGL، دايركت ثري دي (جزء من DirectX)، مانتل (أدفانسد مايكرو دفايسز)
- التعامل مع وثائق SAX، DOM : XML
- الولوج إلى قواعد البيانات: ODBC، JDBC
- رسم الخرائط ونظم المعلومات الجغرافية
وظائف واجهات البرمجة بلغة جافا
قد يكون لواجهات البرمجة وظائف متعددة. على سبيل المثال،في J2EE، هناك الوظائف التالية:
- API إتصال متزامن / غير متزامن
- API للإتصالات (الدلائل وقواعد البيانات وتخطيط موارد المؤسسات)
- API إدارة المعاملات
- API إدارة البريد الإلكتروني
- API تسلسل XML
- API تحليل XML
- API إدارة سجلات XML (مثل ebXML)
ويمكن استخدام واجهات برمجة التطبيقات لتبسيط الوصول إلى واجهات برمجة تطبيقات أخرى.
- يوفر JAXP API سهولة الوصول إلى تطبيقات مختلفة من SAX و DOM
البيانات المنقولة
يمكن لواجهات البرمجة أن تحمل و تسير بيانات وصفية.
- في الواجهات التي توفرها نظم تخطيط موارد المؤسسات
أمثلة:API بيانات 9i Oracle و البيانات الوصفية العلائقية SAP.
- في لغات البرمجة
مثال جافا: API للوصول و معالجة البيانات المسجلة في مصدر بيانات.
- نظم القرار
مثال: البيانات الوصفية في API ل SAS
- في قواعد البيانات العلائقية
مثال: DB2 مكعب
- في تطبيقات الهندسة المعرفية
مثال: تحميل Loading metadata to Livelink using Bulk Loader API's
مراجع
^ Garlan، David؛ Shaw، Mary (January 1994). "An Introduction to Software Architecture" (PDF). Advances in Software Engineering and Knowledge Engineering. 1. اطلع عليه بتاريخ 08 أغسطس 2016. الوسيط|التاريخ=تم تجاهله (مساعدة); الوسيط|الأول2=تم تجاهله (مساعدة); الوسيط|الأول1=تم تجاهله (مساعدة); الوسيط|تاريخ الوصول=تم تجاهله (مساعدة); الوسيط|الأخير1=تم تجاهله (مساعدة); الوسيط|الأخير2=تم تجاهله (مساعدة); الوسيط|المسار=تم تجاهله (مساعدة); الوسيط|العنوان=تم تجاهله (مساعدة).mw-parser-output cite.citation{font-style:inherit}.mw-parser-output .citation q{quotes:"""""""'""'"}.mw-parser-output .citation .cs1-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/6/65/Lock-green.svg/9px-Lock-green.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Lock-gray-alt-2.svg/9px-Lock-gray-alt-2.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output .citation .cs1-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/a/aa/Lock-red-alt-2.svg/9px-Lock-red-alt-2.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registration{color:#555}.mw-parser-output .cs1-subscription span,.mw-parser-output .cs1-registration span{border-bottom:1px dotted;cursor:help}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Wikisource-logo.svg/12px-Wikisource-logo.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output code.cs1-code{color:inherit;background:inherit;border:inherit;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;font-size:100%}.mw-parser-output .cs1-visible-error{font-size:100%}.mw-parser-output .cs1-maint{display:none;color:#33aa33;margin-left:0.3em}.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registration,.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left,.mw-parser-output .cs1-kern-wl-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right,.mw-parser-output .cs1-kern-wl-right{padding-right:0.2em}
^ de Ternay، Guerric (Oct 10, 2015). "Business Ecosystem: Creating an Economic Moat". BoostCompanies. تمت أرشفته من الأصل في 12 يوليو 2017. اطلع عليه بتاريخ 01 فبراير 2016. الوسيط|تاريخ الأرشيف=تم تجاهله (مساعدة); الوسيط|المسار=تم تجاهله (مساعدة); الوسيط|العنوان=تم تجاهله (مساعدة); الوسيط|الموقع=تم تجاهله (مساعدة); الوسيط|الأول=تم تجاهله (مساعدة); الوسيط|تاريخ الوصول=تم تجاهله (مساعدة); الوسيط|مسار الأرشيف=تم تجاهله (مساعدة); الوسيط|الأخير=تم تجاهله (مساعدة); الوسيط|التاريخ=تم تجاهله (مساعدة); تحقق من التاريخ في:|archive-date=(مساعدة)
^ Lewine، Donald A. (1991). POSIX Programmer's Guide (PDF). O'Reilly & Associates, Inc. صفحة 1. اطلع عليه بتاريخ 02 أغسطس 2016. الوسيط|الصفحة=تم تجاهله (مساعدة); الوسيط|تاريخ الوصول=تم تجاهله (مساعدة); الوسيط|الأخير1=تم تجاهله (مساعدة); الوسيط|الناشر=تم تجاهله (مساعدة); الوسيط|المسار=تم تجاهله (مساعدة); الوسيط|العنوان=تم تجاهله (مساعدة); الوسيط|الأول1=تم تجاهله (مساعدة)
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||
بوابة تقنية المعلومات
بوابة برمجة الحاسوب
|