複製鏈接
請複製以下鏈接發送給好友

API

(應用程序編程接口)

鎖定
API(Application Programming Interface,應用程序接口)是一些預先定義的接口(如函數、HTTP接口),或指軟件系統不同組成部分銜接的約定。 [1]  用來提供應用程序與開發人員基於某軟件或硬件得以訪問的一組例程,而又無需訪問源碼,或理解內部工作機制的細節。
中文名
應用程序編程接口
外文名
Application Programming Interface
簡    寫
API
學    科
軟件工程
定    義
一組定義、程序及協議的集合
目    的
提供系統服務

API簡介

操作系統是用户與計算機硬件系統之間的接口,用户通過操作系統的幫助,可以快速、有效和安全、可靠地操縱計算機系統中的各類資源,以處理自己的程序。為使用户能方便地使用操作系統,OS 又向用户提供瞭如下兩類接口:
(1) 用户接口:操作系統專門為用户提供了“用户與操作系統的接口” ,通常稱為用户接口。該接口支持用户與 OS 之間進行交互,即由用户向 OS 請求提供特定的服務,而系統則把服務的結果返回給用户。
(2) 程序接口:操作系統向編程人員提供了“程序與操作系統的接口” ,簡稱程序接口,又稱應用程序接口 API(Application Programming Interface)。 該接口是為程序員在編程時使用的,系統和應用程序通過這個接口,可在執行中訪問系統中的資源和取得 OS 的服務,它也是程序能取得操作系統服務的唯一途徑。大多數操作系統的程序接口是由一組系統調用(system call)組成,每一個系統調用都是一個能完成特定功能的子程序 [2] 
應用程序接口又稱為應用編程接口,是一組定義、程序及協議的集合,通過 API接口實現計算機軟件之間的相互通信。API 的一個主要功能是提供通用功能集。API同時也是一種中間件,為各種不同平台提供數據共享。程序設計的實踐中,編程接口的設計首先要使軟件系統的職責得到合理劃分。良好的接口設計可以降低系統各部分的相互依賴,提高組成單元的內聚性,降低組成單元間的耦合程度,從而提高系統的可維護性和可擴展性。

API分類

APIWindows API

操作系統的用户接口 操作系統的用户接口
API函數包含在Windows系統目錄下的動態連接庫文件中。Windows API是一套用來控制Windows的各個部件的外觀和行為的預先定義的Windows函數。用户的每個動作都會引發一個或幾個函數的運行以告訴Windows發生了什麼。這在某種程度上很像Windows的天然代碼。而其他的語言只是提供一種能自動而且更容易的訪問API的方法。當你點擊窗體上的一個按鈕時,Windows會發送一個消息給窗體,VB獲取這個調用並經過分析後生成一個特定事件。
更易理解來説:Windows系統除了協調應用程序的執行、內存的分配、系統資源的管理外,同時他也是一個很大的服務中心。調用這個服務中心的各種服務(每一種服務就是一個函數)可以幫助應用程序達到開啓視窗、描繪圖形和使用周邊設備等目的,由於這些函數服務的對象是應用程序,所以稱之為Application Programming Interface,簡稱API 函數。WIN32 API也就是MicrosoftWindows 32位平台的應用程序編程接口
凡是在 Windows工作環境底下執行的應用程序,都可以調用Windows API。

APIlinux API

linux中,用户編程接口API遵循了UNIX中最流行的應用編程界面標準---POSIX標準。POSIX標準是由IEEE和ISO/IEC共同開發的標準系統。該標準基於當時現有的UNIX實踐和經驗,描述了操作系統系統調用編程接口API,用於保證應用程序可以在源程序一級上在多種操作系統上移植運行。這些系統調用編程接口主要是通過C庫(LIBC)來實現的。

API開放平台

基於互聯網的應用正變得越來越普及,在這個過程中,有更多的站點將自身的資源開放給開發者來調用。對外提供的API 調用使得站點之間的內容關聯性更強,同時這些開放的平台也為用户、開發者和中小網站帶來了更大的價值。
開放是發展趨勢,越來越多的產品走向開放。網站不能靠限制用户離開來留住用户,開放的架構反而更增加了用户的粘性。在Web 2.0的浪潮到來之前,開放的API 甚至源代碼主要體現在桌面應用上,越來越多的Web應用面向開發者開放了API。
具備分享、標準、去中心化、開放、模塊化的Web 2.0站點,在為使用者帶來價值的同時,更希望通過開放的API 來讓站點提供的服務擁有更大的用户羣和服務訪問數量。
站點在推出基於開放API 標準的產品和服務後,無需花費力氣做大量的市場推廣,只要提供的服務或應用出色易用,其他站點就會主動將開放API 提供的服務整合到自己的應用之中。同時,這種整合API 帶來的服務應用,也會激發更多富有創意的應用產生。
為了對外提供統一的API 接口,需要對開發者開放資源調用API 的站點提供開放統一的API接口環境,來幫助使用者訪問站點的功能和資源。
當然,開放API 的站點為第三方的開發者提供良好的社區支持也是很有意義的,這有助於吸引更多的技術人員參與到開放的開發平台中,並開發出更為有趣的第三方應用。
視頻雲技術提供商CC視頻開放API接口,用户可以在自己的網站後台輕鬆完成視頻的上傳、視頻播放控制操作,並可批量獲取視頻及平台信息。

APIAPI 聲明

正如在"什麼是API"中所説,API函數包含在位於系統目錄下的DLL文件中。你可以自己輸入API函數的聲明,但VB提供了一種更簡單的方法,即使用API Text Viewer。 要想在你的工程中聲明API函數,只需運行API Text Viewer,打開Win32api.txt或MDB。如果你已經把它轉換成了數據庫的話,這樣可以加快速度。 使用預定義的常量和類型也是同樣的方法。 API除了有應用“應用程序接口”的意思外,還特指API的説明文檔,也稱為幫助文檔。

API常見問題

假設你想在你的窗體模塊中聲明一個函數,粘貼然後運行,VB會告訴你:編譯錯誤...Declare 語句不允許作為類或對象模塊中的Public(公共的) 成員。看起來很糟糕,其實你需要做的只是在聲明前面添加一個Private(私有的)。不要忘了,可是這將使該函數只在該窗體模塊可用。在有些情況下,你會得到"不明確的名稱"這樣的提示,這是因為函數、常量或其他的什麼東西共用了一個名稱。由於絕大多數的函數都進行了別名化,亦即意味着你可以通過Alias子句使用其它的而不是他們原有的名稱,你只需簡單地改變一下函數名稱而它仍然可以正常運行。

API程序功能

遠程過程調用RPC):通過作用在共享數據緩存器上的過程(或任務)實現程序間的通信。
標準查詢語言(SQL):是標準的訪問數據的查詢語言,通過通用數據庫實現應用程序間的數據共享。
文件傳輸:文件傳輸通過發送格式化文件實現應用程序間數據共享。
信息交付:指松耦合或緊耦合應用程序間的小型格式化信息,通過程序間的直接通信實現數據共享。
當前應用於 API 的標準包括ANSI 標準SQL API。另外還有一些應用於其它類型的標準尚在制定之中。API 可以應用於所有計算機平台和操作系統。這些API 以不同的格式連接數據。每種數據格式要求以不同的數據命令和參數實現正確的數據通信,但同時也會產生不同類型的錯誤。因此,除了具備執行數據共享任務所需的知識以外,這些類型的API 還必須解決很多網絡參數問題和可能的差錯條件,即每個應用程序都必須清楚自身是否有強大的性能支持程序間通信。相反由於這種API 只處理一種信息格式,所以該情形下的信息交付API 只提供較小的命令、網絡參數以及差錯條件子集。正因為如此,交付API 方式大大降低了系統複雜性,所以當應用程序需要通過多個平台實現數據共享時,採用信息交付API 類型是比較理想的選擇。

APIAPI與GUI

API 接口屬於一種操作系統或程序接口GUI接口屬於一種圖形操作系統。兩者都屬於直接用户接口。有時公司會將 API 作為其公共開放系統。也就是説,公司制定自己的系統接口標準,當需要執行系統整合、自定義和程序應用等操作時,公司所有成員都可以通過該接口標準調用源代碼,該接口標準被稱之為開放式API。
參考資料