API概念:API(Application Programming Interface,應用程序編程接口)是一些預先定義的函數,目的是提供應用程序與開發人員基於某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內部工作機制的細節。
SDK概念:軟件開發工具包(外語首字母縮寫:SDK、外語全稱:Software Development Kit)一般都是一些軟件工程師為特定的軟件包、軟件框架、硬件平台、操作系統等建立應用軟件時的開發工具的集合。
通俗地說,api可以比作房門鑰匙。在一個房子里,每間房間有其不同的用途與資源。而當要獲取到相應房間的資源時,我們需要先用鑰匙打開房門。譬如我們要從書房里拿書、要去卧室拿枕頭,我們都需要先找到相應房間鑰匙,繼而進入房間拿書、拿枕頭。調用api的過程,就是用鑰匙開門的過程。
而sdk則是把這些鑰匙串在一塊兒,將api集成在一塊兒。擁有sdk,你便可以在該房子里暢通無阻,想要獲得哪個房間里的資源,用手中的鑰匙打開房門,進去拿取即可。
兩者區別:API是一個確定的功能,已經明確了它的作用(比如做加法)。而SDK就像是很多方法的集合體,是一個工具。比如你要做加法,你就調用計算機SDK的加法API實現,要做減法就調用減法API實現,無論你想完成什么計算,SDK里總有能實現的方法。
再舉個例子,比如你要開車去一個地方,車就是SDK,可以讓你完成到達目的地的目的。車上的方向盤,燈,發動機,油門,剎車像一個個API實現,你在使用SDK時,就是調用一個個API功能。如果貼心一點的車,可能還帶有使用說明(SDK說明文檔)。 Api又分為open api和私有api。Open api 顧名思義,即是向所有人公開的接口,允許任何人調用它並獲取到它背后的數據。它就好比於圖書館,你只需要進行相應的身份認證,就可以進入里面獲取到相應的圖書及資源,而身份認證便是你獲取資源的鑰匙。 現在很多公司都開放自己的open api,並為了用戶調用方便,他們大多采用sdk文檔方式打包。用戶在調用時只需要下載該sdk文檔,根據相應規范進行調用即可。這樣就省去了重寫函數去封裝http、https等請求的工作,節省更多時間去做更有價值的事情。
像登錄的時候可以選用微信、微博、QQ等第三方進行登錄,這實際上就是這個網站接入了第三方的登錄sdk;
換個角度理解,先要有API才能整合出SDK,善用合適的工具則能加快API開發的進度。
我們公司使用的是Eolinker,整合了API研發管理的流程和功能,算是國內比較好用的API開發工具。
使用地址:www.eolinker.com