1. 程式人生 > >乾貨丨什麼是API,SDK和API之間有什麼關係呢?

乾貨丨什麼是API,SDK和API之間有什麼關係呢?

隨著軟體規模的日益龐大,常常需要把複雜的系統劃分成小的組成部分,程式設計介面的設計十分重要,程式設計的實踐中,程式設計介面的設計首先要使軟體系統的職責得到合理劃分,良好的介面設計可以降低系統各部分的相互依賴,提高組成單元的內聚性,降低組成單元間的耦合程度,從而提高系統的維護性和擴充套件性。API是介面的一種,在程式互動中具有重要的作用,而SDK與API有著密不可分的關係。

 

01 

 

API

 

(1)API的概念

 

API即“應用程式程式設計介面”,是一些預先定義的函式,目的是作為“介面”溝通兩個不同的東西,提供應用程式與開發人員基於某軟體或硬體得以訪問一組例程的能力,而又無需訪問原始碼,或理解內部工作機制的細節。

 

其實就是別人已經寫好的可以實現特定功能的函式,而你只需要根據他提供好的介面,也就是呼叫他的方法,傳入他規定的引數,然後這個函式就會幫你實現這些功能。

 

從介面interface來說,在計算機領域是指兩個不同事物之間互動的地方,大可以到兩個完整的不同系統,小可以到兩段程式。所以這個I就這麼理解。在這個基礎上,人和程式互動的地方,叫做UI,user interface,所有人輸入的包括滑鼠鍵盤觸控式螢幕聲音輸入都算。那麼程式和程式互動的就叫做API,所有非人對非人互動都通過API進行互動,所謂互動,其實就是傳遞資料,觸發功能。

 

(2)API應用案例

 

示例場景:假如你是一家小企業,公司網站上有一個表格是用來給客戶註冊預約的。你想要憑藉這些預約細節資訊,讓客戶能夠自動在谷歌日程上建立活動。

 

API使用:這就意味著,你的網站伺服器需要直接與谷歌伺服器進行對話,在掌握既定細節資訊的情況下,申請建立活動。之後,你的伺服器就會接收到谷歌的響應並進行處理,然後將相關資訊傳送回瀏覽器,比如說向用戶傳送一個確認資訊。

 

(3)API產品——現在也有公司將API包裝成產品

 

案例:Weather Underground出售其天氣資料API的訪問許可權給其他人。

 

(4)API的分類

 

API又分為(Windows、Linux、Unix等系統的)系統級API,及非作業系統級的自定義API。作為一種有效的程式碼封裝模式,微軟Windows的API開發模式已經為許多商業應用開發的公司所借鑑,並開發出某些商業應用系統的API函式予以釋出,方便第三方進行功能擴充套件。如Google、蘋果電腦公司,以及諾基亞等手機開發的API等等。

 

API又分為開放式API和私有API。顧名思義,開放式API即是向所有人公開的介面,允許任何人呼叫它並獲取到它背後的資料,有時公司會將 API 作為其公共開放系統,也就是說,公司制定自己的系統介面標準,當需要執行系統整合、自定義和程式應用等操作時,公司所有成員都可以通過該介面標準呼叫原始碼,該介面標準被稱之為開放式API。私有API即介面未對外開放。

 

02

 

SDK

 

(1)SDK的概念

 

SDK即“軟體開發工具包”,一般是一些被軟體工程師用於為特定的軟體包、軟體框架、硬體平臺、作業系統等建立應用軟體的開發工具的集合。通俗點是指由第三方服務商提供的實現軟體產品某項功能的工具包。

 

通常SDK是由專業性質的公司提供專業服務的集合,比如提供安卓開發工具、或者基於硬體開發的服務等。也有針對某項軟體功能的SDK,如推送技術、影象識別技術、移動支付技術、語音識別分析技術等,在網際網路開放的大趨勢下,一些功能性的SDK已經被當作一個產品來運營。

 

開發者不需要再對產品的每個功能進行開發,選擇合適穩定的SDK服務並花費很少的經歷就可以在產品中整合某項功能。

 

(2)SDK和API的區別

 

SDK相當於開發整合工具環境,API就是資料介面。在SDK環境下呼叫API資料。

 

 

實際上SDK包含了API的定義,API定義一種能力,一種介面的規範,而SDK可以包含這種能力、包含這種規範。但是SDK又不完完全全只包含API以及API的實現,它是一個軟體工具包,它還有很多其他輔助性的功能。

 

SDK 包含了使用 API 的必需資料,所以人們也常把僅使用 API 來編寫 Windows 應用程式的開發方式叫做“SDK程式設計”。

 

(3)通俗語言解釋

 

API

 

前端呼叫後端資料的一個通道,就是我們俗說的介面,通過這個通道,可以訪問到後端的資料,但是又無需呼叫原始碼。

 

SDK

 

工程師為輔助開發某類軟體的相關文件、範例和工具的集合,使用SDK可以提高開發效率,更簡單的接入某個功能。

舉例說明:一個產品想實現某個功能,可以找到相關的SDK,工程師直接接入SDK,就不用再重新開發了。

齒輪易創是一家為企業提供一體化技術解決方案的創新型網際網路公司,在企業需要技術產品賦能時,從解決方案、產品設計、產品開發、測試上線等全流程為企業解決實際問題,幫助企業網際網路轉型,資訊化打破技術壁壘。網際網路時代,目前齒輪易創已為包括亞馬遜、印象筆記、格理集團、Visa等200+企業提供軟體定製服務,為2000+企業提供產品諮詢。想要了解更多,請登陸齒輪易創官(chilunyc.com)。

(來源:齒輪易創)

(文章均為原創,轉載請標明出處。)