什麼是API,SDK?它們之間有什麼關係?

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

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即接口未對外開放。

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編程”。

通俗語言解釋

API

前端調用後端數據的一個通道,就是我們俗說的接口,通過這個通道,可以訪問到後端的數據,但是又無需調用源代碼。

SDK

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

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

參考:八戒程序員

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章