应用程序接口










应用程序接口英语:application programming interface,缩写作 API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。由於近年來软件的规模日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要。程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的可维护性和可扩展性。




目录






  • 1 概要


  • 2 API種類


    • 2.1 面向对象语言的API


    • 2.2 库与框架的API


    • 2.3 API与协议


    • 2.4 API与设备接口


    • 2.5 Web API




  • 3 API的开发样例代码


  • 4 参考文献


  • 5 外部連結


  • 6 参见





概要


应用程序接口為:「『電腦操作系统(Operating system)』或『程式函式庫』提供給應用程式呼叫使用的程式碼」。其主要目的是讓應用程式開發人員得以呼叫一組例程功能,而無須考慮其底層的原始碼為何、或理解其内部工作機制的細節。API本身是抽象的,它僅定義了一個介面,而不涉及应用程序在实际实现过程中的具体操作。


例如,图形库中的一组API定義了繪製指標的方式,可於图形输出设备上顯示指標。當應用程式需要指標功能時,可在引用、編譯時連結到這組API,而執行時就會呼叫此API的實現(库)來顯示指標。


应用程序接口是一組數量上千、極其複雜的函數和副程式,可讓程式設計師做很多工作,譬如「讀取文件」、「顯示選單」、「在視窗中顯示網頁」等等。操作系统的API可用來分配記憶體或讀取檔案。許多系統應用程式藉由API接口來實現,像是圖形系統、資料庫、網路Web服务,甚至是線上遊戲。


应用程序接口有诸多不同设计。用于快速执行的接口通常包括函数、常量、变量与数据结构。也有其它方式,如通过解释器,或是提供抽象层以遮蔽同API实现相关的信息,确保使用API的代码无需更改而适应实现变化。


应用程序接口經常是软件开发工具包(SDK)的一部分。



API種類


API又分为(Windows、Linux、Unix等系统的)系统级API,及非操作系统级的自定义API。作为一种有效的代码封装模式,微软Windows的API开发模式已经为许多商业应用开发的公司所借鉴,并开发出某些商业应用系统的API函数予以发布,方便第三方进行功能扩展。如Google、苹果电脑公司,以及诺基亚等手机开发的API等等。



面向对象语言的API


  • JAVA API 列表英语List of Java APIs


库与框架的API



  • Windows API


  • 微软Windows的DirectX


  • Simple DirectMedia Layer(SDL)



API与协议


  • LDAP應用程式介面英语LDAP Application Program Interface


API与设备接口



  • PC BIOS调用接口


  • ASPI for SCSI device interfacing



Web API





  • Google地图的API

  • MediaWiki API





API的开发样例代码


API的应用开发需要按照API发布者提供的的规范进行开发。


比如,以下两个例子是Windows API在各编程语言中的表达方式:


  • Visual Basic

[Public|Private] Declare Function|Sub name Lib "libname" [Alias "aliasname"]([[Byval] variable [As type][[Byval] variable [As type]]...]) [As type]


  • C#(C Sharp)

[DllImport("libname", 'Named Parameters')]
[public|private|internal] [Type] FunctionName(Type parameter1,Type parameter2...);


参考文献





外部連結


.mw-parser-output .refbegin{font-size:90%;margin-bottom:0.5em}.mw-parser-output .refbegin-hanging-indents>ul{list-style-type:none;margin-left:0}.mw-parser-output .refbegin-hanging-indents>ul>li,.mw-parser-output .refbegin-hanging-indents>dl>dd{margin-left:0;padding-left:3.2em;text-indent:-3.2em;list-style:none}.mw-parser-output .refbegin-100{font-size:100%}



  • 设计好的应用程序接口之法及其重要性 (英文)


  • 如何写应用程序接口 (英文) 可实现的范例,并带有详细的代码及原因。


  • 面向服务的体系结构(SOA):通向企业应用集成(EAI)之路(英文)


  • ISO/IEC JTC 1 Directives, 5th Edition Version 3.0, Annex J: Guidelines for API standardization(英文)




参见



  • 软件工程





Popular posts from this blog

Lambaréné

Chris Pine

Kashihara Line