restful api接口規(guī)范 webservice接口和restful接口哪個(gè)更好?
webservice接口和restful接口哪個(gè)更好?REST是一種架構(gòu)風(fēng)格,其核心是面向資源,遵循CRUD原則,這個(gè)原則告訴我們對(duì)于資源只需要4種行為,分別是:創(chuàng)建,獲取,更新和刪除,并且這些資源執(zhí)
webservice接口和restful接口哪個(gè)更好?
REST是一種架構(gòu)風(fēng)格,其核心是面向資源,遵循CRUD原則,這個(gè)原則告訴我們對(duì)于資源只需要4種行為,分別是:創(chuàng)建,獲取,更新和刪除,并且這些資源執(zhí)行的操作時(shí)通過(guò)HTTP協(xié)議規(guī)定的,而WebService底層是SOAP協(xié)議,核心是面向活動(dòng),有嚴(yán)格的規(guī)范和標(biāo)準(zhǔn),包括安全,事務(wù)等方面。
那么我們是使用RESTful還是WebService就需要考慮資源本身的 ,看資源本身是那種簡(jiǎn)單的類似增刪改查的業(yè)務(wù)操作,還是那種比較復(fù)雜,如轉(zhuǎn)賬,事務(wù)處理等。其次是看是否有嚴(yán)格的規(guī)范和標(biāo)準(zhǔn)的,而且有多個(gè)業(yè)務(wù)系統(tǒng)集成和開(kāi)發(fā)的時(shí)候,我們使用SOAP協(xié)議就比較優(yōu)勢(shì),如果是簡(jiǎn)單的數(shù)據(jù)操作,無(wú)事務(wù)處理,開(kāi)發(fā)和調(diào)用比較簡(jiǎn)單的話使用REST架構(gòu)風(fēng)格比較有優(yōu)勢(shì),較為復(fù)雜的面向活動(dòng)的服務(wù),我們使用REST意義不大。
接口編程中,為什么只用get和post?
Get,post就足夠用了。。搞什么restful規(guī)范的接口,活干完就不錯(cuò)了,別整那些花里胡哨的
微服務(wù)調(diào)用為啥用RPC框架,http不更簡(jiǎn)單嗎?
簡(jiǎn)單點(diǎn),HTTP是協(xié)議,RPC是概念!實(shí)現(xiàn)RPC可以基于HTTP協(xié)議(Feign),TCP協(xié)議(Netty),RMI協(xié)議(Soap),WebService(XML—RPC)框架。傳輸過(guò)程中,也因?yàn)樾蛄谢绞降牟煌钟幸恍┛蚣芎蛥f(xié)議,比如Dubbo中的Dubbo協(xié)議,gRpc—Protobuf序列化協(xié)議等等。其實(shí),都是基于遠(yuǎn)程調(diào)用的概念,何為遠(yuǎn)程調(diào)用?
重點(diǎn)是,RPC就是遠(yuǎn)程調(diào)用,遠(yuǎn)程調(diào)用就是客戶端把調(diào)用的接口,參數(shù),參數(shù)類型,方法,返回值,返回值類型等(這些稱為方法簽名),通過(guò)如上的協(xié)議,發(fā)送給服務(wù)端,告知服務(wù)端需要調(diào)用的接口方法,這個(gè)過(guò)程就是RPC的實(shí)現(xiàn)過(guò)程!HTTP和RPC是不同層面的兩個(gè)東西!
性能方面,HTTP本身是基于TCP協(xié)議的,屬于應(yīng)用層協(xié)議,所以HTTP協(xié)議本身在實(shí)現(xiàn)過(guò)程中就會(huì)占用大量的資源(內(nèi)存,帶寬等),性能上肯定沒(méi)有通過(guò)TCP直接實(shí)現(xiàn)RPC協(xié)議快,不管HTTP如何優(yōu)化肯定的是不如TCP的!而TCP則是依靠字節(jié)碼,現(xiàn)在普遍采用的是將客戶端調(diào)用的接口信息,序列化的方式發(fā)送給服務(wù)端,序列化框架又包含很多(Hession,Protobuf,Kryo等等,序列化性能最高的是Kryo,序列化后字節(jié)碼最小的是Protobuf),序列化后的字節(jié)碼越小,占用帶寬越少,序列化時(shí)間越短,線程IO等待時(shí)間就會(huì)越小。所以,在具體應(yīng)用層面有很多可探討的技術(shù),可以根據(jù)自己的硬件能力來(lái)選擇相應(yīng)的技術(shù)就可以了!
歡迎熱愛(ài)技術(shù)的人來(lái)探討!
webAPI怎樣理解?
一、為什么是Web API?
Web API是網(wǎng)絡(luò)應(yīng)用程序接口。包含了廣泛的功能,網(wǎng)絡(luò)應(yīng)用通過(guò)API接口,可以實(shí)現(xiàn)存儲(chǔ)服務(wù)、消息服務(wù)、計(jì)算服務(wù)等能力,利用這些能力可以進(jìn)行開(kāi)發(fā)出強(qiáng)大功能的web應(yīng)用。
二、web平臺(tái)歸為7個(gè)基本設(shè)施,其間的線索是這些產(chǎn)品都提供了API,分別是:
1)存儲(chǔ)服務(wù):存儲(chǔ)服務(wù)關(guān)注抽象化和虛擬化存儲(chǔ)。
2)openemy服務(wù):它提供了類似于文件系統(tǒng)接口的api,但增加了給文件標(biāo)簽的能力。
3)消息服務(wù):消息服務(wù)在概念上類似于傳統(tǒng)意義上的中間件。
4)計(jì)算服務(wù):目前還沒(méi)有一個(gè)一般的可以通過(guò)api訪問(wèn)的web計(jì)算服務(wù)黑盒,但有不少技術(shù)指向這個(gè)方向。
5)信息服務(wù):信息服務(wù)提供海量特定的信息。
6)搜索服務(wù):因?yàn)樗阉髟趙eb領(lǐng)域的基礎(chǔ)和統(tǒng)治地位,搜索服務(wù)構(gòu)成了新的web基礎(chǔ)架構(gòu)的關(guān)鍵部分。
7)web2.0服務(wù):最后一類寬泛的叫它們web2.0服務(wù)。
什么是API接口,具體是什么意思?
作為軟件應(yīng)用而言,很多資源和數(shù)據(jù)不一定就是由其自身提供的,某些功能還是需要調(diào)用第三方提供的服務(wù),這其中就涉及到API接口的調(diào)用。
什么是API接口?
API是指應(yīng)用程序編程接口,我們通過(guò)API接口可以實(shí)現(xiàn)特定的功能,而不需要了解其內(nèi)部實(shí)現(xiàn)細(xì)節(jié)。可以把API接口理解為是特定服務(wù)的一種封裝,將服務(wù)封裝起來(lái)提供給他人調(diào)用,這樣一來(lái)很多功能不需要從新開(kāi)發(fā)。
舉個(gè)例子,我們想要知道一周天氣如何,如果由自己來(lái)實(shí)現(xiàn)這個(gè)功能很難,因?yàn)樘鞖鈹?shù)據(jù)只有氣象部門(mén)才知道。那該如何知道天氣信息呢?氣象部分提供數(shù)據(jù)API給我們使用,我們只要輸入地區(qū)就會(huì)知道該地區(qū)一周的天氣情況,但我們并不需要了解這天氣預(yù)報(bào)是如何實(shí)現(xiàn)的。
另外,不同系統(tǒng)和編程語(yǔ)言之間的數(shù)據(jù)通訊往往也采用API形式進(jìn)行數(shù)據(jù)交接。
常見(jiàn)的API形式有哪些?
上面我們說(shuō)到了,API其實(shí)就是一類服務(wù)的封裝。我們可以使用不同的編程語(yǔ)言編寫(xiě)API,開(kāi)發(fā)習(xí)慣和編程語(yǔ)言的不同導(dǎo)致API風(fēng)格也存在差異。常見(jiàn)的API有以下幾種形式:
1、HTTP類型接口
基于HTTP協(xié)議提供的API,這類API常常以“網(wǎng)址”形式提供的,像現(xiàn)在主流的RESTful就屬于這類接口。
2、RPC接口
RPC它是指遠(yuǎn)程過(guò)程調(diào)用,將一部分代碼邏輯放在遠(yuǎn)程服務(wù)器上部署,然后在需要的地方調(diào)用即可(調(diào)用遠(yuǎn)程方法就像調(diào)用本地方法一樣),本質(zhì)上是Client/Server模式,而且支持多種協(xié)議和數(shù)據(jù)傳輸方式。
3、Web Service 接口
Web Service并不具象地指某種API,我們將以WEB形式提供的服務(wù)都稱之為Web Service,像RESTful也屬于Web Service。
以上就是我的觀點(diǎn),對(duì)于這個(gè)問(wèn)題大家是怎么看待的呢?歡迎在下方評(píng)論區(qū)交流 ~ 我是科技領(lǐng)域創(chuàng)作者,十年互聯(lián)網(wǎng)從業(yè)經(jīng)驗(yàn),歡迎關(guān)注我了解更多科技知識(shí)!