軟件開發(fā)工具包(SDK:Software Development Kit)和應用編程接口(API:Application Programming Interface)是應用開發(fā)的關鍵組成部分。然而,這兩個術語有時會重疊,常常導致混淆。

API
API是一組指令和協(xié)議,用于將特定功能集成到應用程序中。API可以幫助你的應用程序或項目與外部服務連接,實現(xiàn)無縫的數(shù)據(jù)傳輸,并增加新的功能。
軟件公司Mulesoft如此解釋API(https://www.mulesoft.com/resources/api/what-is-an-api):

餐廳桌子有菜單可以可以點菜。廚房是 "系統(tǒng) "的一部分,將準備你的訂單。缺少的是將你的訂單傳達給廚房并將你的食物送回你的桌子的關鍵環(huán)節(jié)。這就是服務員或API的作用。服務員是信使(API)接收你的請求或訂單,并告訴廚房(系統(tǒng))該怎么做。然后,服務員將回應送回給你;在這種情況下,它是食物。
有了API,開發(fā)人員不必擔心創(chuàng)建大量的自定義代碼來實現(xiàn)功能,因為存在各種API來實現(xiàn)特定的功能。正如IBM所提到的,API允許公司開放其應用程序的數(shù)據(jù)和功能供第三方開發(fā)者使用。因此,如果你有一個送餐應用程序,并想驗證你的用戶號碼,提供位置,并在不離開平臺的情況下啟用支付,有電話、地圖和支付API來執(zhí)行這些操作。
SDK
SDK是一套用于為特定平臺開發(fā)應用程序的工具。紅帽公司支出典型的SDK包含編譯器、調試器以及API,還有以下任何一項。
- 文檔
- 庫
- 編輯器
- 運行時/開發(fā)環(huán)境
- 測試/分析工具
- 驅動程序
- 網絡協(xié)議
讓我們再來看看餐廳的情況。做菜需要為你的食譜提供原料、廚房用具等。SDK提供了所有你需要的東西來創(chuàng)建你的預期應用。
在為特定平臺開發(fā)應用程序時,SDK是至關重要的。例如,蘋果公司為開發(fā)者提供了iOS SDK,這樣他們就可以專門為iOS創(chuàng)建應用程序。SDK應該為開發(fā)者增加價值。因此,它應該易于使用,對所使用的代碼提供詳盡的解釋,并為現(xiàn)有的應用程序增加功能。
區(qū)別
現(xiàn)在我們定義了這兩個概念,讓我們來回顧一下。
- API促進了軟件的溝通和整合。
- SDK提供了專門為某一平臺建立應用程序的基礎
- SDK包含API;API不包含SDK
API是輕量級的,并根據(jù)所要實現(xiàn)的功能進行專業(yè)化。同時,SDK有一系列的實用程序來創(chuàng)建一個新的應用程序或添加新的功能。
如果你有一個娛樂應用,即構視頻SDK可以幫助你將應用內的直播和故事整合到你的產品中。 因此,無論是體育賽事還是音樂會在你的應用中播放,這個解決方案可以幫助帶來大量的粉絲來使用你的應用。另一方面,如果你的SDK有一個可以收集用戶數(shù)據(jù)的聊天機器人API,你就可以利用所掌握的信息創(chuàng)造一個更個性化的用戶體驗,推送量身定做的通知,并向用戶提供正確的內容。