api

應用程序編程介面

A徠PI(Application Programming Interface,應用程序介面)是一些預先定義的介面(如函數、HTTP介面),或指軟體系統不同組成部分銜接的約定。用來提供應用程序與開發人員基於某軟體或硬體得以訪問的一組常式,而又無需訪問源碼,或理解內部工作機制的細節。

簡介


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

分類


徠API函數包含在Windows系統目錄下的動態連接庫文件中。Windows API是一套用來控制Windows的各個部件的外觀和行為的預先定義的Windows函數。用戶的每個動作都會引發一個或幾個函數的運行以告訴Windows發生了什麼。這在某種程度上很像Windows的天然代碼。而其他的語言只是提供一種能自動而且更容易的訪問API的方法。當你點擊窗體上的一個按鈕時,Windows會發送一個消息給窗體,VB獲取這個調用並經過分析後生成一個特定事件。
更易理解來說:Windows系統除了協調應用程序的執行、內存的分配、系統資源的管理外,同時他也是一個很大的服務中心。調用這個服務中心的各種服務(每一種服務就是一個函數)可以幫助應用程序達到開啟視窗、描繪圖形和使用周邊設備等目的,由於這些函數服務的對象是應用程序,所以稱之為Application Programming Interface,簡稱API函數。WIN32API也就是MicrosoftWindows32位平台的應用程序編程介面。
凡是在Windows工作環境底下執行的應用程序,都可以調用Windows API。
linux API
在linux中,用戶編程介面API遵循了UNIX中最流行的應用編程界面標準---POSIX標準。POSIX標準是由IEEE和ISO/IEC共同開發的標準系統。該標準基於當時現有的UNIX實踐和經驗,描述了操作系統的系統調用編程介面API,用於保證應用程序可以在源程序一級上在多種操作系統上移植運行。這些系統調用編程介面主要是通過C庫(LIBC)來實現的。

開放平台


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

API聲明


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

常見問題


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

程序功能


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

API與GUI


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