開啟主選單

求真百科

應用程序接口

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

中文名:應用程序編程接口

外文名:application programming interface

簡 稱:API

領 域:信息科學

目錄

簡介

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

目的

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

原理

在數據封裝時,網絡分層中的每個層相互之間會用接口進行交互並提供服務,其中應用層與用戶之間的接口稱之為應用程序接口(API,Application Programming Interface)。API實際上是一種功能集合,也可說是定義、協議的集合,無論是那種集合,它的實質都是通過抽象為用戶屏蔽實現上的細節和複雜性。

從用戶角度看應用程序接口,表現為一系列API函數,用戶可以使用這些函數進行網絡應用程序開發。從網絡角度看,應用程序接口給用戶提供了一組方法,用戶可以使用這組方法向應用層發送業務請求、信息和數據,網絡中的各層則依次響應,最終完成網絡數據傳輸。 [1]

程序介紹

隨着軟件規模的日益龐大,需要把複雜系統劃分成小的組成部分,編程接口的設計十分重要。程序設計的實踐中,編程接口的設計首先要使系統的職責得到合理劃分。良好的接口設計可以降低系統各部分的相互依賴,提高組成單元的內聚性,降低組成單元間的耦合程度,從而提高系統的維護性和擴展性。

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的實現(庫)來顯示圖標。[2]

系統分類

操作系統的API可用來分配內存或訪問文件。許多系統與應用程序提供API接口與實現,比如圖形系統數據庫網絡Web服務,甚至於某些遊戲。 一組API經常是一套軟件開發工具包(Software Development Kit,SDK)的一部分。SDK亦可包含其它工具亦或至於硬件,兩個術語並不完全等同.

API又分為(Windows、Linux、Unix等系統的)系統級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。它是傳輸層為用戶提供的應用程序接口,可以用來在傳輸層進行應用開發。 [3]

視頻

什麼是小程序

參考文獻