中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

API與SDK的區別有哪些

發布時間:2021-10-21 11:41:34 來源:億速云 閱讀:143 作者:iii 欄目:web開發

本篇內容介紹了“API與SDK的區別有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

首先我們要明白的是 API 是和通信有關的,是用于應用(服務)與其他應用(服務)對話所定義的協議。在上述例子中,你可以簡單理解為 API 是 OCR  應用和云端服務之間溝通的橋梁。

那么 API 到底是什么?

API 全稱 Application Programming Interface,即「應用程序接口」。

一般是指一些預先定義的函數,目的是供應用程序與開發人員基于某軟件或硬件得以訪問一組程序的能力,而又無需訪問源碼,或理解內部工作機制的細節。

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

抽象

其次,我們要理解,API 的另一個重要特點——抽象。

抽象指的又是什么?

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

API與SDK的區別有哪些

但是你作為一個 APP 的開發者,你需要去看這些代碼是怎么寫的嗎?難道不知道背后的源碼就不能調用百度提供的文字識別能力了嗎?當然不是。

通常服務商已經給你提供了文檔,告訴你如何去調用相應服務,只要你按照他的要求來即可。

API與SDK的區別有哪些

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

標準化

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

我在《你的第一本 SpringBoot 書》[1]中寫到什么是 RESTful API,有興趣的小伙伴可以點擊閱讀,這是我正在寫的一本  SpringBoot 入門教程,目前還沒完工,歡迎讀者們不要吝嗇自己的建議 。

API 的構成要素

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

首先,我們要發送一些數據到云端,即所謂的「請求」。

從本地應用發請求到云端,我們需要分幾步完成,以 REST 為例。

對于 REST API 調用請求,第一步是指定傳輸的方法,通常是和 HTTP 方法對應的,如下圖所示:

API與SDK的區別有哪些

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

API與SDK的區別有哪些

之后,服務器再以 JSON 等形式將數據返還給你,在你使用的云服務的文檔中也會有所標注。

API與SDK的區別有哪些

SDK

說了這么多,你應該對 API 有所了解了,那么這時候問題就來了,作為開發人員,你如何在實際的項目中調用 API?

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

麻煩。

API與SDK的區別有哪些

那有沒有什么好的辦法簡化這些操作,使得我只需要給一張圖片然后就給我返回結果的呢?

自然是有的,這就是接下來我們要說的 SDK 了。

SDK 全稱 Software Development Kit,軟件開發工具包。

一般都是一些軟件工程師為特定的軟件包、軟件框架、硬件平臺、操作系統等建立應用軟件時的開發工具的集合。

通俗來講就是第三方服務商提供的實現產品軟件某項功能的工具包。例如 JDK 就是一種 SDK。

還是以上面的 OCR 應用為例,如果使用了某廠商的 SDK 服務,那么我們連 HTTP  請求的構建都不需要了,僅調用一個方法,可能的代碼如下圖所示。

OCRResult res = ocrClient.ocr("pic.jpg").getResult();

通過調用這行代碼,SDK 會自動封裝 API 請求,而且作為響應,你獲得的結果也不一定是 JSON  對象,也有可能是代碼,例如上述代碼段里的OCRResult,這是因為 SDK 也已經將 JSON 對象反序列化成你需要的對象,比如一個 Java  Model。

SDK 相當于開發集成工具環境,API 就是數據接口。API 可以在 SDK 提供的“環境”里請求。同樣的,這里的“環境”也是一個抽象的概念。如果不使用  SDK,也可以直接調用 API,只不過,這個環境就要由開發者自己實現了。

區別

其實從上面的內容,我們也已了解到,API 在更多場合下更像是 SDK 的一個子集,他們的區別如下:

  • API 通常是一個函數,有特定的功能;而 SDK 是一個很多功能函數的集合體,更像是一個工具包。•API 通常扮演數據接口的形象,SDK  相當于一個工具環境,通常是需要在 SDK 的環境下調用 APl。•SDK 相較于 API 封裝層次更高。

“API與SDK的區別有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

api
AI

定西市| 金塔县| 靖安县| 泸水县| 昌黎县| 苍山县| 遂平县| 缙云县| 富裕县| 靖远县| 平武县| 凌源市| 广水市| 文化| 巴南区| 南涧| 韶山市| 江川县| 万山特区| 阿鲁科尔沁旗| 兴安县| 东光县| 湘潭县| 错那县| 瑞丽市| 惠东县| 安陆市| 安溪县| 辽中县| 固原市| 鹿邑县| 新沂市| 阜平县| 奉节县| 新建县| 中卫市| 南平市| 和硕县| 榆社县| 武宣县| 台中县|