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