SDK 和 API 的區別是什麼?
不知道區別的人,大概率是你還沒搞懂API、SDK是什麼。
講個小故事:
研發人員A開發了軟體A,研發人員B正在研發軟體B。
有一天,研發人員B想要呼叫軟體A的部分功能來用,但是他又不想從頭看一遍軟體A的原始碼和功能實現過程,怎麼辦呢?
研發人員A想了一個好主意:我把軟體A裡你需要的功能打包好,寫成一個函式。你按照我說的流程,把這個函式放在軟體B裡,就能直接用我的功能了!
其中,API就是研發人員A說的那個函式。
這就是API的誕生。
日常生活中,我們有很多類似API的場景,比如:
電腦需要呼叫手機裡面的資訊,這時候你會拿一根資料線將電腦手機連線起來,電腦和手機上連線資料線的介面就相當於“API介面”。如圖所示:
那SDK又是什麼?
SDK 就是 Software Development Kit 的縮寫,翻譯過來——軟體開發工具包。這是一個覆蓋面相當廣泛的名詞,可以這麼說:輔助開發某一類軟體的相關文件、範例和工具的集合都可以叫做SDK。
SDK被開發出來是為了減少程式設計師工作量的。
比如——
有公司開發出某種軟體的某一功能,把它封裝成SDK(比如資料分析SDK就是能夠實現資料分析功能的SDK),出售給其他公司做開發用,其他公司如果想要給軟體開發出某種功能,但又不想從頭開始搞開發,直接付錢省事。
現在可以談談API和SDK的區別了。
總的來說,兩者沒有值得比較的區別,因為是具有關聯性的兩種東西。
你可以把SDK想象成一個虛擬的程式包,在這個程式包中有一份做好的軟體功能,這份程式包幾乎是全封閉的,只有一個小小介面可以聯通外界,這個介面就是API。
比如——
我們現在要在企業ERP系統中增加某個功能(比如自動備份、資料分析、雲端儲存等),但又不想耗費大量時間、也沒那麼多研發親自去做這個功能。這時我們可以選擇使用這個“SDK”軟體包,把ERP系統連線上API介面,就可以使用SDK軟體包裡的功能。
- 舉個例項輔助理解:
【中鐵大橋科研院】有一個自研的資訊平臺,用於管理業務資料。
但他們曾面臨一個問題——儘管有資訊平臺,卻因為系統的獨立性,資料的上傳和備份,需要依靠人工在excel裡來回操作,效率很低。
由於系統的開發週期長、成本高,橋科院將目光聚焦到現成的功能軟體上。
後來通過API將簡道雲直接插入公司資料庫,資料可自動上傳至資訊平臺上並統一展示;再通過webhook把資料推送到伺服器,實現自動備份。
在這一過程中,簡道雲扮演的角色就是SDK,而簡道雲配備API介面,可以對接外部系統,讓橋科院不用開發直接實現了資料自動上傳、備份的功能。
最後,貼近生活講講兩者的關係:
有一杯密封飲料,它的名字叫做“SDK”。
飲料上插著吸管,吸管的名字叫“API”。
把你叫做“XX系統”。
如果你想喝到SDK裡的飲料(讓系統擁有SDK中的功能),你必須通過API這根吸管來實現(通過API連線你的系統和SDK工具包),否則你就喝不到飲料。
所以:
SDK=放著你想要的軟體功能的軟體包
API=SDK上唯一的介面
不知道你這次真的懂了沒?
這個問題好像又熱起來了,既然如此,給大家推薦一個新“玩具”:前端事件。
理論上解釋:
前端事件是一種全新的資料獲取的方式,可以在資料提交或者表單填報時,主動呼叫外部介面,從而可以實現介面取數、資料驗證、資料分析、觸發事件等一系列的操作,使用者可以基於現成的商業介面進行配置(無需程式設計),也可以根據自身需求封裝介面,靈活地滿足自身業務需求(需程式設計)
說人話解釋:
使用者填寫快遞單號,返回具體物流資訊;
上傳發票圖片,返回發票金額;
上傳身份證照片,獲取身份證姓名、身份證號;
……等。
例如,在發票報銷場景中,根據前端事件配置,可在提交發票圖片後自動獲取發票中的開票金額、開票日期等基礎資訊。
- 增值稅發票OCR識別_Demo:點選體驗 配置方法
- 增值稅發票PDF格式識別_Demo:點選體驗
- 身份證OCR識別_Demo:點選體驗 配置方法
- 身份證姓名一致性校驗_Demo:點選體驗
- 銀行卡OCR識別_Demo:點選體驗 配置方法
- 銀行卡四要素校驗_Demo:點選體驗
- 自定義模板識別_Demo:點選體驗 配置方法
- 物流資訊查詢_Demo:點選體驗 配置方法
- 簡訊傳送_Demo:點選體驗 配置方法
- 全球ip地址查詢_Demo:點選體驗
- 資料庫取數_Demo:點選體驗
- 企業工商資訊查詢_Demo:點選體驗
最後!
求點贊求關注
@簡道雲 ,邀請你一起成長~