WEB開發(fā)中,使用JSON-RPC好還是RESTful API好?
網(wǎng)友解答: RPC (遠(yuǎn)程過程調(diào)用)簡單理解即把別人的系統(tǒng)當(dāng)作自己的系統(tǒng)調(diào)用。優(yōu)點(diǎn):(1)把別人的系統(tǒng)當(dāng)作自己的調(diào)用(2)一般是長連接,請求訪問效率高。缺點(diǎn):(1)需引用被調(diào)用系統(tǒng)的接口
RPC (遠(yuǎn)程過程調(diào)用)簡單理解即把別人的系統(tǒng)當(dāng)作自己的系統(tǒng)調(diào)用。
優(yōu)點(diǎn):(1)把別人的系統(tǒng)當(dāng)作自己的調(diào)用
(2)一般是長連接,請求訪問效率高。
缺點(diǎn):(1)需引用被調(diào)用系統(tǒng)的接口包,調(diào)用的外部系統(tǒng)越多,本系統(tǒng)將越來越龐大
(2)編程語言有較大限制,一般只能調(diào)用當(dāng)前語言的RPC。
具體實(shí)例:一般為webservice和dubbo
REST簡單理解通過HTTP請求訪問接口
優(yōu)點(diǎn):(1)即插即用,只需按照指定規(guī)則,不需要再引用其它的接口包
(2)跨語言,不同的編程語言都可以通過HTTP交互
缺點(diǎn):(1)HTTP連接,效率較低。
具體實(shí)例:一般為HTTP和SpringCloud
Dubbo和SpringCloud的比較
從上圖看,各有優(yōu)缺點(diǎn),我選擇SpringCloud的REST,基于以下原因
網(wǎng)友解答:JSON-RPC已經(jīng)是過去式了,不能很好的忙住現(xiàn)在的快熟開發(fā)。。。。
而這個(gè)RESTFul,其中的REST實(shí)際上應(yīng)該是ReST:Representational State Transfer的縮寫的,具體解釋起來應(yīng)該是的:
Representational的意思是表現(xiàn)形式的。
State Transfer的意思是狀態(tài)轉(zhuǎn)換的。
這個(gè)所以RESTful的含義是資源通過狀態(tài)轉(zhuǎn)換的一種表現(xiàn)形式的。
具體一點(diǎn)說的,資源通過URL來定位,這個(gè)資源通過POST,GET,PUT,PATCH,DELETE等方法來操作的,然后完成操作后通過HTTP的狀態(tài)碼2xx/4xx來完成狀態(tài)的轉(zhuǎn)換的的。
這個(gè)其中的GET方法表示獲取URL對應(yīng)的資源的,POST/PUT方法表示新建1條資源的,則PATCH方法表示對URL對應(yīng)資源的部分內(nèi)容進(jìn)行修改,DELETE表示刪除URL對應(yīng)的資源的。
所以因此需要訪問RESTful API的場景的:
需要對數(shù)據(jù)進(jìn)行靈活管理的Web頁面,很好的支持Web開發(fā)。
手機(jī)客戶端的開發(fā)的,很好的API。
最好在最佳實(shí)踐中,應(yīng)當(dāng)還應(yīng)該返回與此操作相關(guān)的其他操作的,根據(jù)具體需求處理請求方式?。?!