轉載:原文鏈接:https://juejin.im/post/5cf63df0f265da1bc94edab0
1.SDK是什么?
SDK:
概念:軟件開發工具包(SDK,全稱:Software Development Kit)
一般都是一些軟件工程師為特定的軟件包、軟件框架、硬件平台、操作系統等建立應用軟件時的開發工具的集合。
就相當於很多API和其他文件的集合體,你可以用這個完成某一個事情。
舉例子:
整個計算器產品可以看做是一個SDK,它里面有API集合(計算器),說明文檔(說明書),以及一些其他文件。
這個SDK的功能就是計算,可能要算什么不確定,但是你可以通過這個SDK中的某個方法完成,實現你的目的。
2.API是什么?
API:
概念:API(Application Programming Interface,應用程序編程接口)
一般是指一些預先定義的函數,目的是提供應用程序與開發人員基於某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內部工作機制的細節。
舉例子:
比如別人寫好了一個數字求和的方法sum(int a, int b)。
提供給你一個API接口——你只需要調用它這個sum()函數,然后傳入這個a,b的值,然后就可以得到計算的結果,你不需要知道這個方法是怎么實現的,知道該怎么調用即可。
如果別人又寫了一個兩數相乘的方法Mul(int a, int b),那這又稱為另一個API。
比如百度Ai平台的圖像識別API:
3.SDK和API的區別
1.API是一個具體的函數,一個確定的功能,已經明確了它的作用(比如做加法)。 2.SDK就像是很多方法的集合體,是一個工具包。
比如你要做加法,你就調用計算機SDK的加法API,要做減法就調用減法API,無論你想完成什么計算,SDK里總有能實現的方法。
3.SDK除了他提供的完善的接口,他還會給你提供相關的開發環境,而API需要的環境你得自己提供(比如傳參)
4.SDK相當於開發集成工具環境,API就是數據接口。在SDK環境下調用API數據。(而這個SDK你可以自己配置或者下載第三方提供的)
API
前端調用后端數據的一個通道,就是我們俗說的接口,通過這個通道,可以訪問到后端的數據,但是又無需調用源代碼。
SDK
工程師為輔助開發某類軟件的相關文檔、范例和工具的集合,使用SDK可以提高開發效率,更簡單的接入某個功能。
舉例說明:一個產品想實現某個功能,可以找到相關的SDK,工程師直接接入SDK,就不用再重新開發了。
如何選擇API和SDK對接
但是,問題又來了。API和SDK這兩種產品對接方式,選擇哪種比較好呢?
API和SDK對接,適合最重要。沒有哪種最好,只有最適合。
API和SDK最終實現的功能都是一樣的,至於采用哪一種,需要結合對接平台的需求(保密程度,特殊需求、開發成本等等)。
選擇API
優勢:API開發成本低,對接比較簡單,可以快速驗證商業模式和用戶體驗。
劣勢:API會經過對接平台,廠商可以獲取對接平台相關數據信息。
選擇SDK
優勢:SDK對接后的功能比較穩定,響應速度快,而且對接平台相關數據不會被獲取。
劣勢:需要開發的環節較多,開發工作量大,對接周期略長。
所以,大家在實際開發過程中,如果只是簡單功能調用,還是使用API更快速便捷一些;如果是繁瑣復雜的功能,多數情況下還是使用SDK更穩妥一些。