應用程式介面

设置子程序定义、协议和软件构建工具和应用程序

應用程序接口(英語:application programming interface[1]),縮寫為API[2],是一種計算接口,它定義多個軟件中介之間的交互,以及可以進行的調用(call)或請求(request)的種類,如何進行調用或發出請求,應使用的數據格式,應遵循的慣例等。它還可以提供擴展機制,以便用戶可以通過各種方式對現有功能進行不同程度的擴展[3]。一個API可以是完全定製的,針對某個組件的,也可以是基於行業標準設計的以確保互操作性。通過信息隱藏,API實現了模塊化編程,從而允許用戶實現獨立地使用接口。

概要

編輯

應用程序接口是指電腦操作系統程式函式庫提供給應用程式呼叫使用的程式碼,其主要目的是讓應用程式開發人員得以呼叫一組例程功能,而無須考慮其底層的原始碼為何、或理解其內部工作機制的細節。API本身是抽象的,它僅定義了一個介面,而不涉及應用程序在實作過程中的具體操作。

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

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

與用戶界面(將計算機連接到人)形成對比的是,應用程序編程接口(API)將計算機或軟件模塊彼此連接。它並不是為直接由人(終端用戶)使用而設計的,除非是計算機程序員在將其整合到軟件中。API通常由作為程序員可用的工具或服務的不同部分組成。使用API這些部分中的一個的程序或程序員被認為是「調用」API的那部分。構成API的調用也被稱為子程序、方法、請求或端點。API規範定義了這些調用,意味着它解釋了如何使用或實現它們。

API的一個目的是隱藏系統工作的內部細節,僅暴露出程序員會覺得有用的那些部分,並即使內部細節稍後發生變化也保持它們的一致性。API可以為一個特定的系統對定製構建,或者它可能是一個允許多個系統之間互操作的共享標準。

APIs適用於編程語言、軟件庫、計算機操作系統和計算機硬件。API起源於1940年代,儘管這個術語直到1960年代和1970年代才出現。現代對API這個術語的使用經常指的是網絡API,它們允許通過互聯網連接的計算機之間進行通信。API的最新發展促進了微服務的流行,這些微服務是通過公共API訪問的鬆散耦合服務。

應用程序接口有諸多不同設計。用於快速執行的接口通常包括函數常量變量數據結構。也有其它方式,如通過解釋器,或是提供抽象層以遮蔽同API實現相關的信息,確保使用API的代碼無需更改而適應實現變化。

應用程序接口經常是軟件開發工具包(SDK)的一部分。

API種類

編輯

API又分為(WindowsLinuxUnix等系統的)系統級API,及非操作系統級的自定義API。作為一種有效的代碼封裝模式,微軟Windows的API開發模式已經為許多商業應用開發的公司所借鑑,並開發出某些商業應用系統的API函數予以發布,方便第三方進行功能擴展。如Google蘋果電腦公司,以及諾基亞等手機開發的API等等。

面向對象語言的API

編輯

庫與框架的API

編輯

API與協議

編輯

API與設備接口

編輯

Web API

編輯

數據類API

編輯
  • 用於用戶身份識別的API,對用戶身份進行核驗,對開展活動進行風險有效性規避。
  • 用於活動數據三方對接的API,將一方活動關鍵性數據,傳遞給另外一方。多用於集成系統的場景應用。

參考文獻

編輯
  1. ^ 劉瑞新. 计算机组装、维护与维修教程. 機械工業出版社. 2018年8月29日: 229– [2020年7月28日]. ISBN 978-7-111-53541-6. (原始內容存檔於2020年7月31日). 
  2. ^ Musa Unmehopa; Kumar Vemuri; Andy Bennett. Parlay / OSA: From Standards to Reality. John Wiley & Sons. 4 August 2006: 282– [2020-07-28]. ISBN 978-0-470-02823-0. (原始內容存檔於2020-07-31). 
  3. ^ Fisher, Sharon. OS/2 EE to Get 3270 Interface Early. Google Books. 1989 [2020-07-28]. (原始內容存檔於2020-07-26). 

外部連結

編輯

參見

編輯