API(Application Programming Interface,應用程序編程接口)是一些預先定義的函數,目的是提供應用程序與開發人員基於某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內部工做機制的細節。linux
Windows API
API函數包含在Windows系統目錄下的動態鏈接庫文件中。Windows API是一套用來控制Windows的各個部件的外觀和行爲的預先定義的Windows函數。用戶的每一個動做都會引起一個或幾個函數的運行以告訴Windows發生了什麼。這在某種程度上很像Windows的自然代碼。而其餘的語言只是提供一種能自動並且更容易的訪問API的方法。當你點擊窗體上的一個按鈕時,Windows會發送一個消息給窗體,VB獲取這個調用並通過分析後生成一個特定事件。
更易理解來講:Windows系統除了協調應用程序的執行、內存的分配、系統資源的管理外,同時他也是一個很大的服務中心。調用這個服務中心的各類服務(每一種服務就是一個函數)能夠幫助應用程序達到開啓視窗、描繪圖形和使用周邊設備等目的,因爲這些函數服務的對象是應用程序,因此稱之爲Application Programming Interface,簡稱API 函數。WIN32 API也就是MicrosoftWindows 32位平臺的應用程序編程接口。凡是在 Windows工做環境底下執行的應用程序,均可以調用Windows API。
linux API
在linux中,用戶編程接口API遵循了UNIX中最流行的應用編程界面標準---POSIX標準。POSIX標準是由IEEE和ISO/IEC共同開發的標準系統。該標準基於當時現有的UNIX實踐和經驗,描述了操做系統的系統調用編程接口API,用於保證應用程序能夠在源程序一級上在多種操做系統上移植運行。這些系統調用編程接口主要是經過C庫(LIBC)來實現的。
基於互聯網的應用正變得愈來愈普及,在這個過程當中,有更多的站點將自身的資源開放給開發者來調用。對外提供的API 調用使得站點之間的內容關聯性更強,同時這些開放的平臺也爲用戶、開發者和中小網站帶來了更大的價值。
開放是目前的發展趨勢,愈來愈多的產品走向開放。目前的網站不能靠限制用戶離開來留住用戶,開放的架構反而更增長了用戶的粘性。在Web 2.0的浪潮到來以前,開放的API 甚至源代碼主要體如今桌面應用上,而如今愈來愈多的Web應用面向開發者開放了API。
具有分享、標準、去中心化、開放、模塊化的Web 2.0站點,在爲使用者帶來價值的同時,更但願經過開放的API 來讓站點提供的服務擁有更大的用戶羣和服務訪問數量。
站點在推出基於開放API 標準的產品和服務後,無需花費力氣作大量的市場推廣,只要提供的服務或應用出色易用,其餘站點就會主動將開放API 提供的服務整合到本身的應用之中。同時,這種整合API 帶來的服務應用,也會激發更多富有創意的應用產生。
爲了對外提供統一的API 接口,須要對開發者開放資源調用API 的站點提供開放統一的API接口環境,來幫助使用者訪問站點的功能和資源。
固然,開放API 的站點爲第三方的開發者提供良好的社區支持也是頗有意義的,這有助於吸引更多的技術人員參與到開放的開發平臺中,並開發出更爲有趣的第三方應用。
視頻雲技術提供商CC視頻開放API接口,用戶能夠在本身的網站後臺輕鬆完成視頻的上傳、視頻播放控制操做,並可批量獲取視頻及平臺信息
正如在"什麼是API"中所說,API函數包含在位於系統目錄下的DLL文件中。你能夠本身輸入API函數的聲明,但VB提供了一種更簡單的方法,即便用API Text Viewer。 要想在你的工程中聲明API函數,只需運行API Text Viewer,打開Win32api.txt或MDB。若是你已經把它轉換成了數據庫的話,這樣能夠加快速度。 使用預約義的常量和類型也是一樣的方法。 API除了有應用「應用程序接口」的意思外,還特指API的說明文檔,也稱爲幫助文檔。
API能夠作什麼?
常見瀏覽器API
- 操做文檔的API內置於瀏覽器中。最明顯的例子是DOM(文檔對象模型)API,它容許您操做HTML和CSS — 建立、移除以及修改HTML,動態地將新樣式應用到您的頁面,等等。每當您看到一個彈出窗口出如今一個頁面上,或者顯示一些新的內容時,這都是DOM的行爲。 您能夠在在Manipulating documents中找到關於這些類型的API的更多信息。
- 從服務器獲取數據的API 用於更新網頁的一小部分是至關好用的。這個看似很小的細節能對網站的性能和行爲產生巨大的影響 — 若是您只是更新一個股票列表或者一些可用的新故事而不須要從服務器從新加載整個頁面將使網站或應用程序感受更加敏感和「活潑」。使這成爲可能的API包括
XMLHttpRequest
和Fetch API。您也可能會遇到描述這種技術的術語Ajax。您能夠在Fetching data from the server找到關於相似的API的更多信息。
- 用於繪製和操做圖形的API目前已被瀏覽器普遍支持 — 最流行的是容許您以編程方式更新包含在HTML
<canvas>
元素中的像素數據以建立2D和3D場景的Canvas和WebGL。例如,您能夠繪製矩形或圓形等形狀,將圖像導入到畫布上,而後使用Canvas API對其應用濾鏡(如棕褐色濾鏡或灰度濾鏡),或使用WebGL建立具備光照和紋理的複雜3D場景。這些API常常與用於建立動畫循環的API(例如window.requestAnimationFrame()
)和其餘API一塊兒不斷更新諸如動畫和遊戲之類的場景。
- 音頻和視頻API例如
HTMLMediaElement
,Web Audio API和WebRTC容許您使用多媒體來作一些很是有趣的事情,好比建立用於播放音頻和視頻的自定義UI控件,顯示字幕字幕和您的視頻,從網絡攝像機抓取視頻,經過畫布操縱(見上),或在網絡會議中顯示在別人的電腦上,或者添加效果到音軌(如增益,失真,平移等) 。
- 設備API基本上是以對網絡應用程序有用的方式操做和檢索現代設備硬件中的數據的API。咱們已經討論過訪問設備位置數據的地理定位API,所以您能夠在地圖上標註您的位置。其餘示例還包括經過系統通知(參見Notifications API)或振動硬件(參見Vibration API)告訴用戶Web應用程序有用的更新可用。
- 客戶端存儲API在Web瀏覽器中的使用變得愈來愈廣泛 - 若是您想建立一個應用程序來保存頁面加載之間的狀態,甚至讓設備在處於脫機狀態時可用,那麼在客戶端存儲數據將會是很是有用的。例如使用Web Storage API的簡單的鍵 - 值存儲以及使用IndexedDB API的更復雜的表格數據存儲。