應用程式接口

應用程式接口

應用程式編程接口,簡稱API(Application Programming Interface),就是軟體系統不同組成部分銜接的約定。

基本介紹

簡介,目的,原理,程式介紹,系統分類,常見應用程式接口,

簡介

應用程式接口(英語:Application Programming Interface,簡稱:API),又稱為套用編程接口,就是軟體系統不同組成部分銜接的約定。由於近年來軟體的規模日益龐大,常常需要把複雜的系統劃分成小的組成部分,編程接口的設計十分重要。程式設計的實踐中,編程接口的設計首先要使軟體系統的職責得到合理劃分。良好的接口設計可以降低系統各部分的相互依賴,提高組成單元的內聚性,降低組成單元間的耦合程度,從而提高系統的維護性和擴展性。

目的

API之主要目的是提供應用程式與開發人員以訪問一組例程的能力,而又無需訪問源碼,或理解內部工作機制的細節。提供API所定義的功能的軟體稱作此API的實現。API是一種接口,故而是一種抽象。

原理

在數據封裝時,網路分層中的每個層相互之間會用接口進行互動並提供服務,其中套用層與用戶之間的接口稱之為應用程式接口(API,Application Programming Interface)。API實際上是一種功能集合,也可說是定義、協定的集合,無論是那種集合,它的實質都是通過抽象為用戶禁止實現上的細節和複雜性。
從用戶角度看應用程式接口,表現為一系列API函式,用戶可以使用這些函式進行網路應用程式開發。從網路角度看,應用程式接口給用戶提供了一組方法,用戶可以使用這組方法向套用層傳送業務請求、信息和數據,網路中的各層則依次回響,最終完成網路數據傳輸。

程式介紹

隨著軟體規模的日益龐大,需要把複雜系統劃分成小的組成部分,編程接口的設計十分重要。程式設計的實踐中,編程接口的設計首先要使系統的職責得到合理劃分。良好的接口設計可以降低系統各部分的相互依賴,提高組成單元的內聚性,降低組成單元間的耦合程度,從而提高系統的維護性和擴展性。
API之主要目的是提供應用程式與開發人員以訪問一組例程的能力,而又無需訪問源碼,或理解內部工作機制的細節。提供API所定義的功能的軟體稱作此API的實現。API是一種接口,故而是一種抽象。 A reference implementation of an API is the implementation created by the designer of the API, or one which other implementations of the API are expected to be compared against.
例如,圖形庫中的一組API定義調用繪製圖示函式的方式,以於螢幕上顯示圖示。程式中調用,編譯時連線到這組API,執行時便調用API的實現(庫)來顯示圖示。

系統分類

作業系統的API可用來分配記憶體或訪問檔案。許多系統與應用程式提供API接口與實現,比如圖形系統,資料庫,網路,Web服務,甚至於某些遊戲
一組API經常是一套軟體開發工具包(Software Development Kit,SDK)的一部分。SDK亦可包含其它工具亦或至於硬體,兩個術語並不完全等同.
API又分為(WindowsLinuxUnix等系統的)系統級API,及非作業系統級的自定義API。作為一種有效的代碼封裝模式,微軟Windows的API開發模式已經為許多商業套用開發的公司所借鑑,並開發出某些商業套用系統的API函式予以發布,方便第三方進行功能擴展。如Google蘋果電腦公司,以及諾基亞等手機開發的API等等。
API有諸多不同設計。用於快速執行的接口通常包括函式常量變數與數據結構。也有其它方式,如通過解釋器,或是提供抽象層以遮蔽同API實現相關的信息,確保使用API的代碼無需更改而適應實現變化。
API:應用程式接口(API:Application Program Interface)應用程式接口(API:application programming interface)是一組定義、程式及協定的集合,通過 API接口實現計算機軟體之間的相互通信。API 的一個主要功能是提供通用功能集。程式設計師通過使用 API函式開發應用程式,從而可以避免編寫無用程式,以減輕編程任務。 API 同時也是一種中間件,為各種不同平台提供數據共享。根據單個或分散式平台不同軟體應用程式間的數據共享性能,可以將 API 分為四種類型:遠程過程調用(RPC):通過作用在共享數據快取器上的過程(或任務)實現程式間的通信。 標準查詢語言(SQL):是標準的訪問數據的查詢語言,通過通用資料庫實現應用程式間的數據共享。 檔案傳輸:檔案傳輸通過傳送格式化檔案實現應用程式間數據共享。 信息交付:指松耦合或緊耦合應用程式間的小型格式化信息,通過程式間的直接通信實現數據共享。 當前套用於 API 的標準包括 ANSI 標準 SQL API。另外還有一些套用於其它類型的標準尚在制定之中。API可以套用於所有計算機平台和作業系統。這些 API以不同的格式連線數據(如共享數據快取器、資料庫結構、檔案框架)。每種數據格式要求以不同的數據命令和參數實現正確的數據通信,但同時也會產生不同類型的錯誤。因此,除了具備執行數據共享任務所需的知識以外,這些類型的 API還必須解決很多網路參數問題和可能的差錯條件,即每個應用程式都必須清楚自身是否有強大的性能支持程式間通信。相反由於這種 API只處理一種信息格式,所以該情形下的信息交付 API 只提供較小的命令、網路參數以及差錯條件子集。正因為如此,交付 API方式大大降低了系統複雜性,所以當應用程式需要通過多個平台實現數據共享時,採用信息交付 API 類型是比較理想的選擇。API 與圖形用戶接口(GUI)或命令接口有著鮮明的差別:API 接口屬於一種作業系統或程式接口,而後兩者都屬於直接用戶接口。有時公司會將 API 作為其公共開放系統。也就是說,公司制定自己的系統接口標準,當需要執行系統整合、自定義和程式套用等操作時,公司所有成員都可以通過該接口標準調用原始碼,該接口標準被稱之為開放式 API。

常見應用程式接口

套用層的應用程式接口有很多,並且發展很快,比較常見的如socket、FTP、HTTP以及telnet。這些接口從大類上可分為四類:
  • 遠程過程調用(RPC,Remote Procedure Call Protocol)
  • 數據查詢接口
  • 檔案類接口
  • 數據通信接口
例如FTP協定就是檔案類接口,基於FTP,用戶可以實現檔案在網路間的共享和傳輸。而socket和HTTP可歸結為數據通信接口,基於這兩種接口,用戶可以開發網路通信應用程式,以及web頁面互動程式。當然如果從編程開發角度看,無論是FTP、HTTP還是telnet,都是基於socket接口開發出來的套用層協定,是對socket接口的進一步封裝和抽象,從而為用戶提供更高一層的服務和接口。
socket有時稱之為“Berkeley Socket”,它是最早由伯克利開發的應用程式接口。常用的socket類型有兩種:流式socket(SOCK_STREAM)和數據報式socket(SOCK_DGRAM)。
  • 流式socket是一種面向連線的socket,針對於面向連線的TCP服務套用。
  • 數據報式socket是一種無連線的socket,對應於無連線的UDP服務套用。
從用戶接口意義上講,還有傳輸層的TLI接口,是由AT&T開發的,有時也稱作XTI。它是傳輸層為用戶提供的應用程式接口,可以用來在傳輸層進行套用開發。

相關詞條

熱門詞條

聯絡我們