研發人員A開發了軟件A,研發人員B正在研發軟件B。 有一天,研發人員B想要調用軟件A的部分功能來用,但是他又不想從頭看一遍軟件A的源碼和功能實現過程,怎么辦呢? 研發人員A想了一個好主意:我把軟件A里你需要的功能打包好,寫成一個函數。你按照我說的流程,把這個函數放在軟件B里,就能直接用我的功能了! 其中,API就是研(yan)發(fa)人員A說(shuo)的那個函數。
這就是API的誕生。
電腦需要調用手機(ji)(ji)里(li)面的(de)信息(xi),這(zhe)時候你(ni)會拿一(yi)根數據線(xian)將(jiang)電腦手機(ji)(ji)連(lian)接起來(lai),電腦和手機(ji)(ji)上(shang)連(lian)接數據線(xian)的(de)接口(kou)就(jiu)相當于“API接口(kou)”。如圖(tu)所示:
SDK 就是(shi) Software Development Kit 的(de)縮寫,翻譯(yi)過來(lai)——軟件開發工具(ju)包(bao)。這(zhe)是(shi)一個覆蓋面相當廣泛(fan)的(de)名詞,可以(yi)這(zhe)么說:輔助開發某一類軟件的(de)相關文檔、范例和(he)工具(ju)的(de)集(ji)合都可以(yi)叫做SDK。
SDK被開發出(chu)來是為了減少程序員工(gong)作量的。
比如——
有公司(si)開(kai)(kai)發出某種軟件的某一功(gong)(gong)能,把(ba)它封裝成SDK(比如(ru)數(shu)(shu)據分(fen)(fen)析SDK就是能夠實現數(shu)(shu)據分(fen)(fen)析功(gong)(gong)能的SDK),出售(shou)給其他(ta)公司(si)做開(kai)(kai)發用,其他(ta)公司(si)如(ru)果(guo)想(xiang)要(yao)給軟件開(kai)(kai)發出某種功(gong)(gong)能,但又不想(xiang)從(cong)頭開(kai)(kai)始搞(gao)開(kai)(kai)發,直(zhi)接付錢省事(shi)。
總的(de)(de)來(lai)說,兩(liang)(liang)者沒有(you)值得比較的(de)(de)區(qu)別,因為是具有(you)關聯(lian)性的(de)(de)兩(liang)(liang)種東西。
你可以(yi)把SDK想(xiang)象成一(yi)個虛擬的(de)程(cheng)序(xu)包,在這(zhe)個程(cheng)序(xu)包中有(you)(you)一(yi)份做好的(de)軟件(jian)功能,這(zhe)份程(cheng)序(xu)包幾乎是全封(feng)閉的(de),只(zhi)有(you)(you)一(yi)個小(xiao)小(xiao)接口(kou)可以(yi)聯通外界,這(zhe)個接口(kou)就是API。
比如——
我們現(xian)在要在企業ERP系統中增加某個(ge)功(gong)能(neng)(比如自動備份、數(shu)據(ju)分析、云存(cun)儲等),但又不想耗費大量時(shi)間(jian)、也沒那么多研發親(qin)自去做這個(ge)功(gong)能(neng)。這時(shi)我們可以選(xuan)擇使用(yong)這個(ge)“SDK”軟件包(bao),把ERP系統連接上API接口,就可以使用(yong)SDK軟件包(bao)里的(de)功(gong)能(neng)。
【中(zhong)鐵大橋科研(yan)院】有一個自研(yan)的信息(xi)平臺,用(yong)于(yu)管理業(ye)務數據(ju)。
但(dan)他們曾面臨一個問題——盡管有(you)信息平(ping)臺,卻因為系統的獨立性,數據的上傳和備份,需要依靠人工在excel里來回操作,效率很低。
由(you)于系(xi)統的開(kai)發周期長(chang)、成(cheng)本高,橋(qiao)科院將目光聚(ju)焦到現成(cheng)的功能軟(ruan)件上。
后來通(tong)過API將(jiang)簡道(dao)云直接(jie)插入公司數據(ju)庫,數據(ju)可自動上(shang)傳至信息(xi)平臺上(shang)并統(tong)一(yi)展示(shi);再(zai)通(tong)過webhook把(ba)數據(ju)推(tui)送到服(fu)務(wu)器,實現自動備份。
API將信(xin)息(xi)平臺(tai)與簡道云相連
在這一(yi)過程中,簡(jian)道云(yun)(yun)扮演的角(jiao)色(se)就(jiu)是SDK,而簡(jian)道云(yun)(yun)配(pei)備(bei)API接(jie)口,可以(yi)對(dui)接(jie)外部(bu)系統,讓(rang)橋科院不(bu)用開發(fa)直接(jie)實現了數據自動上傳、備(bei)份的功(gong)能。
最后,貼近生活講講兩者的關系:
有一杯密封飲料,它的名字叫做“SDK”。
飲料上插著吸管,吸管的名字叫“API”。
把你叫做“XX系統”。
如果你想喝到SDK里的飲料(讓系統擁有SDK中的功能),你必須通過API這根吸管來實現(通過API連接你的系統和SDK工具包),否則你就喝不到飲料。
所以:
SDK=放著你想要的(de)軟件(jian)功能(neng)的(de)軟件(jian)包
API=SDK上唯一(yi)的接口
這個問題好像又熱起來了,既然如此,給大家推薦一個新“玩具”:前端事件。
理論上解釋:
前端事件是一(yi)種全(quan)新的(de)數(shu)(shu)據(ju)獲(huo)取的(de)方(fang)式,可(ke)以(yi)(yi)在數(shu)(shu)據(ju)提交或(huo)者表單(dan)填報時,主動調用(yong)外部接(jie)(jie)(jie)口(kou)(kou)(kou),從而可(ke)以(yi)(yi)實(shi)現接(jie)(jie)(jie)口(kou)(kou)(kou)取數(shu)(shu)、數(shu)(shu)據(ju)驗證(zheng)、數(shu)(shu)據(ju)分析(xi)、觸發事件等一(yi)系(xi)列的(de)操(cao)作,用(yong)戶可(ke)以(yi)(yi)基(ji)于現成(cheng)的(de)商(shang)業接(jie)(jie)(jie)口(kou)(kou)(kou)進行配置(無(wu)需編程),也可(ke)以(yi)(yi)根據(ju)自(zi)身需求(qiu)封裝接(jie)(jie)(jie)口(kou)(kou)(kou),靈(ling)活地滿足自(zi)身業務(wu)需求(qiu)(需編程)
通俗解釋:
用戶填寫快遞單號,返回(hui)具體物流(liu)信息; 上(shang)傳(chuan)發(fa)票(piao)圖片,返回(hui)發(fa)票(piao)金額; 上(shang)傳(chuan)身(shen)份(fen)(fen)證照片,獲取(qu)身(shen)份(fen)(fen)證姓名、身(shen)份(fen)(fen)證號; ……等。
例(li)如,在發票(piao)(piao)(piao)報(bao)銷場景中,根據前端(duan)事件配(pei)置,可在提交(jiao)發票(piao)(piao)(piao)圖片后自(zi)動獲取發票(piao)(piao)(piao)中的(de)開(kai)票(piao)(piao)(piao)金額、開(kai)票(piao)(piao)(piao)日期等基礎信(xin)息。
前往體驗簡道云零代碼搭建平臺:gaoyunjjd.com