關於API和SDK的理解

2021-09-24 07:29:13 字數 1271 閱讀 2624

說到api,往往是和sdk放在一起的。

什麼叫api,看一下餐廳裡怎麼點餐的就行了。

到了飯店,喊一場服務員,點餐。

服務員拿出來選單給你看,你點什麼,她在小本本上記什麼。

點好了之後,再把選單送到後廚去。

這裡服務員就是提供服務的(不然也不叫服務員),提供什麼服務呢?

點餐服務。

點餐服務需要什麼呢?

談乙個服務,通常就是要談輸入是什麼,輸出又是什麼。

從眼下這個例子來看,輸入就是一道道菜品的名字(或者是id,不知道你們見過菜品上面有編號,服務員只記編號的?),輸出的結果就是端過來的一道道菜。

有了輸入和輸出,服務員就可以提供了點餐的功能,這就是api,顧客就是呼叫者,服務員就是服務的提供者。

你可以在這裡把服務員替換成貓貓,假設女王大人貓貓來給你提供服務,只要輸出是菜品的名字,輸出是菜品,這個api就是能夠正常使用的。

而且,所有的顧客都可以用這種方式來點菜的~~~

再想想,是不是有的服務員手裡拿的是點餐機?想想乙個漂亮的小姑娘,拿著乙個和手機大小差不多的點餐機,這個點餐機,就是需要和後廚系統有互動,這種互動,就需要一種約束,來宣告點菜功能的輸入是什麼,輸出是什麼。比如說,如果使用者點了一道已經估清的菜,是不是服務員要告訴顧客一下?

api通常是以http的形式提供,它隱藏的含義就是,只要你符合我定義的標準,你就可以來使用我。

比如說,服務員是中國姑娘,顧客是美國人,沒關係,只要美國人能說中國話,這套api就可以使用。如果美國人只會說英語,怎麼辦?讓和美國人一起來吃飯的中國朋友翻譯成中文,就可以了~~

那麼什麼是sdk呢?

當美國人不會說中文的時候,飯店裡的大堂經理來了,他來給美國佬當翻譯。這就是sdk,sdk一般都是和語言相關,是官方提供的各種不同語言的實現版本。

同樣的,我們再把思維模式擴大一點。

除了http這種api,內部系統整合的元件,是否也是有api?

你會發現,確實是這樣的,比如說,jdk本身提供的各種api,在這裡,api和sdk的概念沒有那麼清楚了,但是api本身的含義就是,當服務的提供方對外提供服務的時候,應該宣告輸入和輸出和功能的明確含義。

而一組組明確宣告了的輸入,輸出和功能描述,就是服務方提供的各種api。

比如說陣列對外暴露的方法,鍊錶對外暴露的方法等等。

那麼,api和方法之間有沒有明顯的區別呢?暴露出去的,可被公開使用的方法,統稱為api~~~

以上解釋不夠嚴謹,但是對於初學者來說,理解起來應該夠了。

如果你在理解api的時候有困難,大概問題並不是在api上,而是你有沒有理解清楚什麼叫做封裝,什麼叫做服務?

關於API和SDK的理解及兩者區別

sdk 概念 軟體開發工具包 sdk,全稱 software development kit 一般都是一些軟體工程師為特定的軟體包 軟體框架 硬體平台 作業系統等建立應用軟體時的開發工具的集合。通俗點是指由第三方服務商提供的實現軟體產品某項功能的工具包。就相當於很多api和其他檔案的集合體,你可以用...

關於API和SDK的個人理解及兩者區別

關於api和sdk的個人理解及兩者區別 最近接到公司的一項任務,呼叫第三方庫的一些東西。因此記錄一下在使用第三方的功能模組時常常提及到的兩個名詞 api和sdk。1.sdk是什麼?sdk 概念 軟體開發工具包 sdk,全稱 software development kit 一般都是一些軟體工程師為特...

sdk 和 api 的區別??????

定義 1 api 2 sdk sdk software development kit 中文是 軟體開發工具組 由一系列的工具組合在一起,編輯器裡敲 的時候它會自動補全 自動錯誤檢查等 區別 sdk 包含了使用 api 的必需資料。sdk是開發工具提供商提供的,而api是統一定的系統 作業系統或專用...