應(yīng)用程序接口
應(yīng)用程序接口(應(yīng)用程序 編程 接口,API)是一些預(yù)定義的接口(如函數(shù)、HTTP接口),或指軟件系統(tǒng)不同組件連接的協(xié)議。用于提供一組例程,應(yīng)用程序和開發(fā)人員可以基于某個(gè)軟件或硬件訪問這些例程,而無需訪問源代碼或了解內(nèi)部工作機(jī)制的細(xì)節(jié)。
API是一組定義、通過API接口相互通信的程序和協(xié)議的集合。由于軟件的規(guī)模越來越大,經(jīng)常需要將復(fù)雜的系統(tǒng)分成小的組件這時(shí)候編程接口的設(shè)計(jì)就很重要了。在編程實(shí)踐中,編程接口的設(shè)計(jì)首先要使軟件系統(tǒng)的職責(zé)合理劃分。良好的接口設(shè)計(jì)可以減少系統(tǒng)各部分的相互依賴,提高組成單元的內(nèi)聚性,降低組成單元之間的耦合度,從而提高系統(tǒng)的可維護(hù)性和可擴(kuò)展性。
簡(jiǎn)要概述
操作系統(tǒng)是用戶和計(jì)算機(jī)硬件系統(tǒng)之間的接口在操作系統(tǒng)的幫助下,用戶可以快速、有效和安全、可靠地操作計(jì)算機(jī)系統(tǒng)中的各種資源來處理自己的程序。為了使用戶能夠方便地使用操作系統(tǒng),OS為用戶提供了以下兩種類型的界面:
1)用戶接口:操作系統(tǒng)為用戶提供“用戶和操作系統(tǒng)之間的接口”,通常稱為用戶界面。該接口支持用戶與OS的交互,即用戶向OS請(qǐng)求特定的服務(wù),系統(tǒng)將服務(wù)的結(jié)果返回給用戶。
2)程序接口:操作系統(tǒng)為程序員提供了“程序和操作系統(tǒng)之間的接口”,縮寫為程序接口,又稱應(yīng)用程序接口 API(應(yīng)用程序 編程 接口)這個(gè)接口是程序員在編程時(shí)使用的通過這個(gè)接口,系統(tǒng)和應(yīng)用程序可以訪問系統(tǒng)中的資源,并在執(zhí)行期間獲得操作系統(tǒng)的服務(wù)它也是程序獲得操作系統(tǒng)服務(wù)的唯一途徑。大多數(shù)操作系統(tǒng)的程序接口是由一組系統(tǒng)調(diào)用的(系統(tǒng) 呼叫)組成,每個(gè)系統(tǒng)調(diào)用都是一個(gè)子程序,可以完成一個(gè)特定的功能。
應(yīng)用編程接口,也稱為應(yīng)用編程接口,是一組定義、通過API接口相互通信的程序和協(xié)議的集合。API的主要功能之一就是提供一個(gè)通用的函數(shù)集。API也是一個(gè)中間件,為不同平臺(tái)提供數(shù)據(jù)共享。在編程實(shí)踐中,編程接口的設(shè)計(jì)首先要使軟件系統(tǒng)的職責(zé)合理劃分。良好的接口設(shè)計(jì)可以減少系統(tǒng)各部分的相互依賴,提高組成單元的內(nèi)聚性,降低組成單元之間的耦合度,從而提高系統(tǒng)的可維護(hù)性和可擴(kuò)展性。
程序分類
Windows API
API函數(shù)包含在Windows系統(tǒng)目錄下的動(dòng)態(tài)鏈接庫(kù)文件中。Windows API是一組預(yù)定義的窗口函數(shù),用于控制窗口各種組件的外觀和行為。用戶的每一個(gè)動(dòng)作都會(huì)導(dǎo)致一個(gè)或幾個(gè)函數(shù)運(yùn)行來告訴Windows發(fā)生了什么。這在某種程度上很像Windows的自然代碼。其他語言只是提供了一種自動(dòng)輕松訪問API的方式。當(dāng)你點(diǎn)擊窗體上的一個(gè)按鈕時(shí),Windows會(huì)向窗體發(fā)送一條消息,VB會(huì)得到這個(gè)調(diào)用,分析后生成一個(gè)特定的事件。
更易理解來說:Windows系統(tǒng)不僅協(xié)調(diào)應(yīng)用程序的執(zhí)行、內(nèi)存的分配、除了系統(tǒng)資源的管理,它還是一個(gè)大的服務(wù)中心。呼叫該服務(wù)中心的各種服務(wù)(每個(gè)服務(wù)都是一個(gè)功能)可以幫助應(yīng)用程序打開窗口、出于繪制圖形和使用外圍設(shè)備的目的,這些函數(shù)被稱為應(yīng)用程序 編程3356接口,簡(jiǎn)稱API函數(shù),因?yàn)樗鼈兪菫閼?yīng)用程序服務(wù)的。WIN32API是MicrosoftWindows32位平臺(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聯(lián)合開發(fā)的標(biāo)準(zhǔn)系統(tǒng)。該標(biāo)準(zhǔn)以當(dāng)時(shí)已有的UNIX實(shí)踐和經(jīng)驗(yàn)為基礎(chǔ),描述了操作系統(tǒng)的系統(tǒng)調(diào)用編程接口API,用于保證應(yīng)用程序在源程序級(jí)別可以移植和運(yùn)行在各種操作系統(tǒng)上。這些系統(tǒng)調(diào)用編程接口主要是通過C庫(kù)(LIBC)來實(shí)現(xiàn)的。
開放平臺(tái)
基于互聯(lián)網(wǎng)的應(yīng)用變得越來越流行在這個(gè)過程中,更多的站點(diǎn)開放自己的資源給開發(fā)者調(diào)用。對(duì)外提供的API調(diào)用使得站點(diǎn)之間的內(nèi)容更加相關(guān),這些開放平臺(tái)也是為了用戶、開發(fā)者和中小網(wǎng)站帶來更大的價(jià)值。
開放是發(fā)展趨勢(shì),越來越多的產(chǎn)品開放。網(wǎng)站可以 不要通過限制用戶離開來留住他們相反,開放的架構(gòu)增加了用戶的粘性。在Web2.在0浪潮到來之前,開放的API甚至源代碼主要體現(xiàn)在桌面應(yīng)用中,越來越多的Web應(yīng)用向開發(fā)者開放API。
具備分享、標(biāo)準(zhǔn)、去中心化、開放、模塊化網(wǎng)站2.0站點(diǎn),在給用戶帶來價(jià)值的同時(shí),希望站點(diǎn)提供的服務(wù)通過開放的API,擁有更大的用戶群和服務(wù)訪問次數(shù)。
在推出基于開放的API 標(biāo)準(zhǔn)的產(chǎn)品和服務(wù)后,該網(wǎng)站不需要花費(fèi)大量精力進(jìn)行營(yíng)銷只要提供的服務(wù)或應(yīng)用是優(yōu)秀的易用的,其他站點(diǎn)就會(huì)主動(dòng)將open API提供的服務(wù)集成到自己的應(yīng)用中。同時(shí),這種集成API帶來的服務(wù)應(yīng)用也將激發(fā)更多的創(chuàng)意應(yīng)用。
為了對(duì)外提供統(tǒng)一的API接口,需要為站點(diǎn)提供一個(gè)開放統(tǒng)一的API接口環(huán)境,開發(fā)者開放資源調(diào)用API,幫助用戶訪問站點(diǎn)的功能和資源。
當(dāng)然,開放API站點(diǎn)為第三方開發(fā)者提供良好的社區(qū)支持也是有意義的,這將有助于吸引更多的技術(shù)人員參與到開放的開發(fā)平臺(tái)中,開發(fā)出更多有趣的第三方應(yīng)用。
視頻云技術(shù)提供商CC Video擁有開放的API接口,用戶可以在自己的網(wǎng)站后臺(tái)輕松上傳視頻、視頻播放控制操作,并可以批量獲取視頻和平臺(tái)信息。
API聲明
正如在'什么是API'如中所述,API函數(shù)包含在位于系統(tǒng)目錄中的DLL文件中。可以自己輸入API函數(shù)的聲明,但是VB提供了一個(gè)更簡(jiǎn)單的方式,就是使用API Text Viewer。要在項(xiàng)目中聲明API函數(shù),只需運(yùn)行API Text Viewer并打開Win32api.txt或MDB。如果你把它轉(zhuǎn)換成一個(gè)數(shù)據(jù)庫(kù),它會(huì)加快這個(gè)過程。使用預(yù)定義的常數(shù)和類型也是同樣的方法。除了應(yīng)用API之外,“應(yīng)用程序接口”除了的意思,還指API的描述文檔,也叫幫助文檔。
常見問題
假設(shè)你想在你的表單模塊中聲明一個(gè)函數(shù),粘貼后運(yùn)行,VB會(huì)告訴你:編譯錯(cuò)誤.在類或?qū)ο竽K中,不允許將Declare語句作為Public語句(公共的)成員。看起來很糟糕,但是你需要做的就是在語句前加一個(gè)Private(私有的)唐 不要忘記,但這將使該功能僅在該表單模塊中可用。在某些情況下,你會(huì)得到'不明確的名稱'這個(gè)提示是因?yàn)楹瘮?shù)、常數(shù)什么的共用一個(gè)名字。由于大多數(shù)函數(shù)都有別名,這意味著您可以通過alias子句使用其他名稱來代替它們的原始名稱,您只需要簡(jiǎn)單地更改函數(shù)的名稱,它仍然可以正常工作。
程序功能
遠(yuǎn)程過程調(diào)用(RPC)通過作用于共享數(shù)據(jù)緩沖區(qū)的過程(或任務(wù))實(shí)現(xiàn)程序之間的通信。
標(biāo)準(zhǔn)查詢語言(SQL)是訪問數(shù)據(jù)的標(biāo)準(zhǔn)查詢語言,通過通用數(shù)據(jù)庫(kù)實(shí)現(xiàn)應(yīng)用程序間的數(shù)據(jù)共享。
文件傳輸:文件傳輸通過發(fā)送格式化文件來實(shí)現(xiàn)應(yīng)用程序之間的數(shù)據(jù)共享。
信息交付:指松耦合或緊耦合的應(yīng)用程序之間的小格式化信息,通過程序間的直接通信實(shí)現(xiàn)數(shù)據(jù)共享。
目前,應(yīng)用于API的標(biāo)準(zhǔn)包括ANSI標(biāo)準(zhǔn)SQLAPI。此外,一些適用于其他類型的標(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)生不同類型的錯(cuò)誤。因此,除了執(zhí)行數(shù)據(jù)共享任務(wù)所需的知識(shí),這些類型的API還必須解決許多網(wǎng)絡(luò)參數(shù)問題和可能的錯(cuò)誤條件,即每個(gè)應(yīng)用程序都必須知道它是否具有強(qiáng)大的性能來支持程序間通信。相反,因?yàn)檫@個(gè)API只處理一種信息格式,所以這種情況下的信息交付API只提供較小的命令、網(wǎng)絡(luò)參數(shù)和錯(cuò)誤條件的子集。正因?yàn)槿绱耍珹PI的交付大大降低了系統(tǒng)的復(fù)雜度,所以當(dāng)應(yīng)用需要跨多個(gè)平臺(tái)共享數(shù)據(jù)時(shí),采用信息交付API類型是比較理想的選擇。
API與GUI
API接口屬于操作系統(tǒng)或程序接口,GUI接口屬于圖形操作系統(tǒng)。兩者都屬于直接用戶界面。有時(shí)公司會(huì)使用API作為他們的公共開放系統(tǒng)。換句話說,公司制定了自己的系統(tǒng)接口標(biāo)準(zhǔn),以及何時(shí)需要實(shí)現(xiàn)系統(tǒng)集成、公司的所有成員都可以通過這個(gè)接口標(biāo)準(zhǔn)調(diào)用源代碼,這個(gè)接口標(biāo)準(zhǔn)叫做open API。
