應用程式介面
應用程式介面(英語: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又分為(Windows、Linux、Unix等系統的)系統級API,及非作業系統級的自訂API。作為一種有效的代碼封裝模式,微軟Windows的API開發模式已經為許多商業應用開發的公司所借鑑,並開發出某些商業應用系統的API函式予以發布,方便第三方進行功能擴充。如Google、蘋果電腦公司,以及諾基亞等手機開發的API等等。
物件導向語言的API
庫與框架的API
API與協定
API與裝置介面
Web API
資料類API
- 用於使用者身分辨識的API,對使用者身分進行核驗,對開展活動進行風險有效性規避。
- 用於活動資料三方對接的API,將一方活動關鍵性資料,傳遞給另外一方。多用於整合系統的場景應用。
參考文獻
- ^ 劉瑞新. 计算机组装、维护与维修教程. 機械工業出版社. 2018年8月29日: 229– [2020年7月28日]. ISBN 978-7-111-53541-6. (原始內容存檔於2020年7月31日).
- ^ 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).
- ^ Fisher, Sharon. OS/2 EE to Get 3270 Interface Early. Google Books. 1989 [2020-07-28]. (原始內容存檔於2020-07-26).
外部連結
- 設計好的應用程式介面之法及其重要性 (英文)
- 如何寫應用程式介面 (頁面存檔備份,存於網際網路檔案館) (英文) 可實現的範例,並帶有詳細的代碼及原因。
- 面向服務的體系結構(SOA):通向企業應用整合(EAI)之路 (頁面存檔備份,存於網際網路檔案館)(英文)
- ISO/IEC JTC 1 Directives, 5th Edition Version 3.0, Annex J: Guidelines for API standardization (頁面存檔備份,存於網際網路檔案館)(英文)