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

API

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

  分類(lèi)

  Windows API

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

  更易理解來(lái)說(shuō):Windows系統(tǒng)除了協(xié)調(diào)應(yīng)用程序的執(zhí)行、內(nèi)存的分配、系統(tǒng)資源的管理外,同時(shí)他也是一個(gè)很大的服務(wù)中心。調(diào)用這個(gè)服務(wù)中心的各種服務(wù)(每一種服務(wù)就是一個(gè)函數(shù))可以幫助應(yīng)用程序達(dá)到開(kāi)啟視窗、描繪圖形和使用周邊設(shè)備等目的,由于這些函數(shù)服務(wù)的對(duì)象是應(yīng)用程序,所以稱(chēng)之為Application Programming Interface,簡(jiǎn)稱(chēng)API 函數(shù)。WIN32 API也就是MicrosoftWindows 32位平臺(tái)的應(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共同開(kāi)發(fā)的標(biāo)準(zhǔn)系統(tǒng)。該標(biāo)準(zhǔn)基于當(dāng)時(shí)現(xiàn)有的UNIX實(shí)踐和經(jīng)驗(yàn),描述了操作系統(tǒng)的系統(tǒng)調(diào)用編程接口API,用于保證應(yīng)用程序可以在源程序一級(jí)上在多種操作系統(tǒng)上移植運(yùn)行。這些系統(tǒng)調(diào)用編程接口主要是通過(guò)C庫(kù)(LIBC)來(lái)實(shí)現(xiàn)的。

  開(kāi)放平臺(tái)

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

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

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

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

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

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

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

  API 聲明

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

  常見(jiàn)問(wèn)題

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

  程序功能

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

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

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

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

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

  API與GUI

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


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