如何正確理解生活中常見的API數據接口?
API:應用程序接口(API:Application Program Interface)應用程序接口(API:application programming interface)是一組定義、程序及協議的集合,通過 API接口實現計算機軟件之間的相互通信。API 的一個主要功能是提供通用功能集。程序員通過使用 API函數開發應用程序,從而可以避免編寫無用程序,以減輕編程任務。 API 同時也是一種中間件,為各種不同平臺提供數據共享。
根據單個或分布式平臺不同軟件應用程序間的數據共享性能,可以將 API 分為四種類型:
遠程過程調用(RPC):通過作用在共享數據緩存器上的過程(或任務)實現程序間的通信。 標準查詢語言(SQL):是標準的訪問數據的查詢語言,通過通用數據庫實現應用程序間的數據共享。
文件傳輸:文件傳輸通過發送格式化文件實現應用程序間數據共享。
信息交付:指松耦合或緊耦合應用程序間的小型格式化信息,通過程序間的直接通信實現數據共享。
當前應用于 API 的標準包括 ANSI 標準 SQL API。另外還有一些應用于其它類型的標準尚在制定之中。API可以應用于所有計算機平臺和操作系統。這些 API以不同的格式連接數據(如共享數據緩存器、數據庫結構、文件框架)。每種數據格式要求以不同的數據命令和參數實現正確的數據通信,但同時也會產生不同類型的錯誤。因此,除了具備執行數據共享任務所需的知識以外,這些類型的 API還必須解決很多網絡參數問題和可能的差錯條件,即每個應用程序都必須清楚自身是否有強大的性能支持程序間通信。相反由于這種 API只處理一種信息格式,所以該情形下的信息交付 API 只提供較小的命令、網絡參數以及差錯條件子集。正因為如此,交付 API方式大大降低了系統復雜性,所以當應用程序需要通過多個平臺實現數據共享時,采用信息交付 API 類型是比較理想的選擇。
API 與圖形用戶接口(GUI)或命令接口有著鮮明的差別:API 接口屬于一種操作系統或程序接口,而后兩者都屬于直接用戶接口。有時公司會將 API 作為其公共開放系統。也就是說,公司制定自己的系統接口標準,當需要執行系統整合、自定義和程序應用等操作時,公司所有成員都可以通過該接口標準調用源代碼,該接口標準被稱之為開放式 API。
應用層常見的接口:
應用層的應用程序接口有很多,并且發展很快,比較常見的如socket、FTP、HTTP以及telnet。這些接口從大類上可分為四類:
遠程過程調用(RPC,Remote Procedure Call Protocol)
數據查詢接口
文件類接口
數據通信接口
例如FTP協議就是文件類接口,基于FTP,用戶可以實現文件在網絡間的共享和傳輸。而socket和HTTP可歸結為數據通信接口,基于這兩種接口,用戶可以開發網絡通信應用程序,以及web頁面交互程序。當然如果從編程開發角度看,無論是FTP、HTTP還是telnet,都是基于socket接口開發出來的應用層協議,是對socket接口的進一步封裝和抽象,從而為用戶提供更高一層的服務和接口。
socket有時稱之為“Berkeley Socket”,它是最早由伯克利開發的應用程序接口。常用的socket類型有兩種:流式socket(SOCK_STREAM)和數據報式socket(SOCK_DGRAM)。
流式socket是一種面向連接的socket,針對于面向連接的TCP服務應用。
數據報式socket是一種無連接的socket,對應于無連接的UDP服務應用。
從用戶接口意義上講,還有傳輸層的TLI接口,是由AT&T開發的,有時也稱作XTI。它是傳輸層為用戶提供的應用程序接口,可以用來在傳輸層進行應用開發。