當(dāng)前位置:首頁 > 百科知識 > 物聯(lián)網(wǎng) > 正文

API

API(Application Programming Interface,應(yīng)用程序編程接口)是一些預(yù)先定義的函數(shù),目的是提供應(yīng)用程序與開發(fā)人員基于某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內(nèi)部工作機(jī)制的細(xì)節(jié)。

  分類

  Windows API

  API函數(shù)包含在Windows系統(tǒng)目錄下的動態(tài)連接庫文件中。Windows API是一套用來控制Windows的各個部件的外觀和行為的預(yù)先定義的Windows函數(shù)。用戶的每個動作都會引發(fā)一個或幾個函數(shù)的運(yùn)行以告訴Windows發(fā)生了什么。這在某種程度上很像Windows的天然代碼。而其他的語言只是提供一種能自動而且更容易的訪問API的方法。當(dāng)你點(diǎn)擊窗體上的一個按鈕時,Windows會發(fā)送一個消息給窗體,VB獲取這個調(diào)用并經(jīng)過分析后生成一個特定事件。

  更易理解來說:Windows系統(tǒng)除了協(xié)調(diào)應(yīng)用程序的執(zhí)行、內(nèi)存的分配、系統(tǒng)資源的管理外,同時他也是一個很大的服務(wù)中心。調(diào)用這個服務(wù)中心的各種服務(wù)(每一種服務(wù)就是一個函數(shù))可以幫助應(yīng)用程序達(dá)到開啟視窗、描繪圖形和使用周邊設(shè)備等目的,由于這些函數(shù)服務(wù)的對象是應(yīng)用程序,所以稱之為Application Programming Interface,簡稱API 函數(shù)。WIN32 API也就是MicrosoftWindows 32位平臺的應(yīng)用程序編程接口。

  凡是在 Windows工作環(huán)境底下執(zhí)行的應(yīng)用程序,都可以調(diào)用Windows API。

  linux API

  在linux中,用戶編程接口API遵循了UNIX中最流行的應(yīng)用編程界面標(biāo)準(zhǔn)---POSIX標(biāo)準(zhǔn)。POSIX標(biāo)準(zhǔn)是由IEEE和ISO/IEC共同開發(fā)的標(biāo)準(zhǔn)系統(tǒng)。該標(biāo)準(zhǔn)基于當(dāng)時現(xiàn)有的UNIX實踐和經(jīng)驗,描述了操作系統(tǒng)的系統(tǒng)調(diào)用編程接口API,用于保證應(yīng)用程序可以在源程序一級上在多種操作系統(tǒng)上移植運(yùn)行。這些系統(tǒng)調(diào)用編程接口主要是通過C庫(LIBC)來實現(xiàn)的。

  開放平臺

  基于互聯(lián)網(wǎng)的應(yīng)用正變得越來越普及,在這個過程中,有更多的站點(diǎn)將自身的資源開放給開發(fā)者來調(diào)用。對外提供的API 調(diào)用使得站點(diǎn)之間的內(nèi)容關(guān)聯(lián)性更強(qiáng),同時這些開放的平臺也為用戶、開發(fā)者和中小網(wǎng)站帶來了更大的價值。

  開放是目前的發(fā)展趨勢,越來越多的產(chǎn)品走向開放。目前的網(wǎng)站不能靠限制用戶離開來留住用戶,開放的架構(gòu)反而更增加了用戶的粘性。在Web 2.0的浪潮到來之前,開放的API 甚至源代碼主要體現(xiàn)在桌面應(yīng)用上,而現(xiàn)在越來越多的Web應(yīng)用面向開發(fā)者開放了API。

  具備分享、標(biāo)準(zhǔn)、去中心化、開放、模塊化的Web 2.0站點(diǎn),在為使用者帶來價值的同時,更希望通過開放的API 來讓站點(diǎn)提供的服務(wù)擁有更大的用戶群和服務(wù)訪問數(shù)量。

  站點(diǎn)在推出基于開放API 標(biāo)準(zhǔn)的產(chǎn)品和服務(wù)后,無需花費(fèi)力氣做大量的市場推廣,只要提供的服務(wù)或應(yīng)用出色易用,其他站點(diǎn)就會主動將開放API 提供的服務(wù)整合到自己的應(yīng)用之中。同時,這種整合API 帶來的服務(wù)應(yīng)用,也會激發(fā)更多富有創(chuàng)意的應(yīng)用產(chǎn)生。

  為了對外提供統(tǒng)一的API 接口,需要對開發(fā)者開放資源調(diào)用API 的站點(diǎn)提供開放統(tǒng)一的API接口環(huán)境,來幫助使用者訪問站點(diǎn)的功能和資源。

  當(dāng)然,開放API 的站點(diǎn)為第三方的開發(fā)者提供良好的社區(qū)支持也是很有意義的,這有助于吸引更多的技術(shù)人員參與到開放的開發(fā)平臺中,并開發(fā)出更為有趣的第三方應(yīng)用。

  視頻云技術(shù)提供商CC視頻開放API接口,用戶可以在自己的網(wǎng)站后臺輕松完成視頻的上傳、視頻播放控制操作,并可批量獲取視頻及平臺信息。

  API 聲明

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

  常見問題

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

  程序功能

  遠(yuǎn)程過程調(diào)用(RPC):通過作用在共享數(shù)據(jù)緩存器上的過程(或任務(wù))實現(xiàn)程序間的通信。

  標(biāo)準(zhǔn)查詢語言(SQL):是標(biāo)準(zhǔn)的訪問數(shù)據(jù)的查詢語言,通過通用數(shù)據(jù)庫實現(xiàn)應(yīng)用程序間的數(shù)據(jù)共享。

  文件傳輸:文件傳輸通過發(fā)送格式化文件實現(xiàn)應(yīng)用程序間數(shù)據(jù)共享。

  信息交付:指松耦合或緊耦合應(yīng)用程序間的小型格式化信息,通過程序間的直接通信實現(xiàn)數(shù)據(jù)共享。

  當(dāng)前應(yīng)用于 API 的標(biāo)準(zhǔn)包括ANSI 標(biāo)準(zhǔn)SQL API。另外還有一些應(yīng)用于其它類型的標(biāo)準(zhǔn)尚在制定之中。API 可以應(yīng)用于所有計算機(jī)平臺和操作系統(tǒng)。這些API 以不同的格式連接數(shù)據(jù)。每種數(shù)據(jù)格式要求以不同的數(shù)據(jù)命令和參數(shù)實現(xiàn)正確的數(shù)據(jù)通信,但同時也會產(chǎn)生不同類型的錯誤。因此,除了具備執(zhí)行數(shù)據(jù)共享任務(wù)所需的知識以外,這些類型的API 還必須解決很多網(wǎng)絡(luò)參數(shù)問題和可能的差錯條件,即每個應(yīng)用程序都必須清楚自身是否有強(qiáng)大的性能支持程序間通信。相反由于這種API 只處理一種信息格式,所以該情形下的信息交付API 只提供較小的命令、網(wǎng)絡(luò)參數(shù)以及差錯條件子集。正因為如此,交付API 方式大大降低了系統(tǒng)復(fù)雜性,所以當(dāng)應(yīng)用程序需要通過多個平臺實現(xiàn)數(shù)據(jù)共享時,采用信息交付API 類型是比較理想的選擇。

  API與GUI

  API 接口屬于一種操作系統(tǒng)或程序接口,GUI接口屬于一種圖形操作系統(tǒng)。兩者都屬于直接用戶接口。有時公司會將 API 作為其公共開放系統(tǒng)。也就是說,公司制定自己的系統(tǒng)接口標(biāo)準(zhǔn),當(dāng)需要執(zhí)行系統(tǒng)整合、自定義和程序應(yīng)用等操作時,公司所有成員都可以通過該接口標(biāo)準(zhǔn)調(diào)用源代碼,該接口標(biāo)準(zhǔn)被稱之為開放式API。


內(nèi)容來自百科網(wǎng)