API與SDK:有什麽區别

時間:2023-02-03 作者:管理員(yuán) 點擊:281

什麽是API?

什麽是SDK?

兩者之間有何關系?


既然點進來了,相信你或多或少都聽(tīng)說過這兩個名詞了,因此,在爲你解答之前,讓我(wǒ)(wǒ)們先從一(yī)個例子出發。

假如你想開(kāi)發一(yī)個OCR應用(通俗的說就是文字識别應用),他的功能是識别用戶上傳的一(yī)張圖片,然後将圖片中(zhōng)的文字識别出來返回給用戶。

通常,OCR應用的後端服務都會部署在雲上,那麽我(wǒ)(wǒ)們應該如何在移動應用程序與基于雲的服務之間進行通信呢?

這就是API和SDK的用武之地了。

API

API的特點

通信


首先我(wǒ)(wǒ)們要明白(bái)的是API是和通信有關的,是用于應用(服務)與其他應用(服務)對話(huà)所定義的協議。在上述例子中(zhōng),你可以簡單理解爲API是OCR應用和雲端服務之間溝通的橋梁。

那麽API到底是什麽?

API全稱ApplicationProgrammingInterface,即「應用程序接口」。

一(yī)般是指一(yī)些預先定義的函數,目的是供應用程序與開(kāi)發人員(yuán)基于某軟件或硬件得以訪問一(yī)組程序的能力,而又(yòu)無需訪問源碼,或理解内部工(gōng)作機制的細節。

以Java爲例,當你想要實現一(yī)個數組排序的功能時,你是會先手寫一(yī)個排序算法,還是直接使用Arrays.sort函數?我(wǒ)(wǒ)想你心裏是有答案的。

抽象

其次,我(wǒ)(wǒ)們要理解,API的另一(yī)個重要特點——抽象。

抽象指的又(yòu)是什麽?

還是以這個OCR應用爲例,當我(wǒ)(wǒ)們在使用雲端提供的文字識别能力時(比如百度文字識别),他的背後可能會有成千上萬的代碼,比如提供識别能力的機器學習的代碼、提供Web能力的後端代碼等等。

但是你作爲一(yī)個APP的開(kāi)發者,你需要去(qù)看這些代碼是怎麽寫的嗎(ma)?難道不知(zhī)道背後的源碼就不能調用百度提供的文字識别能力了嗎(ma)?當然不是。

通常服務商(shāng)已經給你提供了文檔,告訴你如何去(qù)調用相應服務,隻要你按照他的要求來即可。

因此,在你的APP和OCR服務之間,API抽象出所有複雜(zá)的邏輯,簡化了調用過程,這使得你隻需要考慮獲取所需的數據即可。

标準化

API是标準化的,這意味着存在有關如何定義API的行業标準,比如SOAP、REST、GraphQL等。

API的構成要素

那麽,API通常由什麽組成呢?

首先,我(wǒ)(wǒ)們要發送一(yī)些數據到雲端,即所謂的「請求」。

從本地應用發請求到雲端,我(wǒ)(wǒ)們需要分(fēn)幾步完成,以REST爲例。

對于RESTAPI調用請求,第一(yī)步是指定傳輸的方法,通常是和HTTP方法對應的。

當你想要上傳一(yī)張圖片時,通常會使用POST方法,然後是傳遞一(yī)些參數,包括請求的内容(圖像本身)。然後加上需要請求的地址,即可構成一(yī)個完整的請求。

之後,服務器再以JSON等形式将數據返還給你,在你使用的雲服務的文檔中(zhōng)也會有所标注。

SDK

說了這麽多,你應該對API有所了解了,那麽這時候問題就來了,作爲開(kāi)發人員(yuán),你如何在實際的項目中(zhōng)調用API?

你要自己構造HTTP請求、拼接URL、添加需要的參數、處理返回的JSON對象,麻煩嗎(ma)?

麻煩。
返回列表
在線溝通

Are you interested in ?

感興趣嗎(ma)?

有關我(wǒ)(wǒ)們服務的更多信息,請聯系

136 7365 2363(同微信) 13140187702

鄭州網站建設鄭州網站設計鄭州網站制作鄭州建站公司鄭州網站優化--聯系索騰

與我(wǒ)(wǒ)們合作

鄭州網站建設鄭州網站設計鄭州網站制作鄭州建站公司鄭州網站優化--與索騰合作,您将會得到更成熟、專業的網絡建設服務。我(wǒ)(wǒ)們以客戶至上,同時也相互挑戰,力求呈現最好的品牌建設成果。

業務咨詢熱線:

136 7365 2363

TOP

QQ客服

在線留言