應用程序接口(API:application programming interface)是一組定義、程序及協(xié)議的集合,通過 API 接口實現(xiàn)計算機軟件之間的相互通信。API 的一個主要功能是提供通用功能集。程序員通過使用 API 函數(shù)開發(fā)應用程序,從而可以避免編寫無用程序,以減輕編程任務(wù)。
API 同時也是一種中間件,為各種不同平臺提供數(shù)據(jù)共享。根據(jù)單個或分布式平臺上不同軟件應用程序間的數(shù)據(jù)共享性能,可以將 API 分為四種類型:
遠程過程調(diào)用(RPC):通過作用在共享數(shù)據(jù)緩存器上的過程(或任務(wù))實現(xiàn)程序間的通信。
標準查詢語言(SQL):是標準的訪問數(shù)據(jù)的查詢語言,通過通用數(shù)據(jù)庫實現(xiàn)應用程序間的數(shù)據(jù)共享。
文件傳輸:文件傳輸通過發(fā)送格式化文件實現(xiàn)應用程序間數(shù)據(jù)共享。
信息交付:指松耦合或緊耦合應用程序間的小型格式化信息,通過程序間的直接通信實現(xiàn)數(shù)據(jù)共享。
當前應用于 API 的標準包括 ANSI 標準 SQL API。另外還有一些應用于其它類型的標準尚在制定之中。API 可以應用于所有計算機平臺和操作系統(tǒng)。這些 API 以不同的格式連接數(shù)據(jù)(如共享數(shù)據(jù)緩存器、數(shù)據(jù)庫結(jié)構(gòu)、文件框架)。每種數(shù)據(jù)格式要求以不同的數(shù)據(jù)命令和參數(shù)實現(xiàn)正確的數(shù)據(jù)通信,但同時也會產(chǎn)生不同類型的錯誤。因此,除了具備執(zhí)行數(shù)據(jù)共享任務(wù)所需的知識以外,這些類型的 API 還必須解決很多網(wǎng)絡(luò)參數(shù)問題和可能的差錯條件,即每個應用程序都必須清楚自身是否有強大的性能支持程序間通信。相反由于這種 API 只處理一種信息格式,所以該情形下的信息交付 API 只提供較小的命令、網(wǎng)絡(luò)參數(shù)以及差錯條件子集。正因為如此,交付 API 方式大大降低了系統(tǒng)復雜性,所以當應用程序需要通過多個平臺實現(xiàn)數(shù)據(jù)共享時,采用信息交付 API 類型是比較理想的選擇。
API 與圖形用戶接口(GUI)或命令接口有著鮮明的差別:API 接口屬于一種操作系統(tǒng)或程序接口,而后兩者都屬于直接用戶接口。
有時公司會將 API 作為其公共開放系統(tǒng)。也就是說,公司制定自己的系統(tǒng)接口標準,當需要執(zhí)行系統(tǒng)整合、自定義和程序應用等操作時,公司所有成員都可以通過該接口標準調(diào)用源代碼,該接口標準被稱之為開放式 API。