簡單對比 RPC 和 Restful API

2022-07-17 13:21:08 字數 1244 閱讀 1814

restful api 架構

rest ***的幾個特點為:資源、統一介面、uri 和無狀態。

①資源

所謂"資源",就是網路上的乙個實體,或者說是網路上的乙個具體資訊。它可以是一段文字、一張、一首歌曲、一種服務,就是乙個具體的實在。

②統一介面

restful 架構風格規定,資料的元操作,即 crud(create,read,update 和 delete,即資料的增刪查改)操作,分別對應於 http 方法:get 用來獲取資源,post 用來新建資源(也可以用於更新資源),put 用來更新資源,delete 用來刪除資源,這樣就統一了資料操作的介面,僅通過 http 方法,就可以完成對資料的所有增刪查改工作。

③url

可以用乙個 uri(統一資源定位符)指向資源,即每個 uri 都對應乙個特定的資源。

要獲取這個資源,訪問它的 uri 就可以,因此 uri 就成了每乙個資源的位址或識別符。

④無狀態

所謂無狀態的,即所有的資源,都可以通過 uri 定位,而且這個定位與其他資源無關,也不會因為其他資源的變化而改變。有狀態和無狀態的區別,舉個簡單的例子說明一下。

如查詢員工的工資,如果查詢工資是需要登入系統,進入查詢工資的頁面,執行相關操作後,獲取工資的多少,則這種情況是有狀態的。

因為查詢工資的每一步操作都依賴於前一步操作,只要前置操作不成功,後續操作就無法執行。

如果輸入乙個 uri 即可得到指定員工的工資,則這種情況是無狀態的,因為獲取工資不依賴於其他資源或狀態。

且這種情況下,員工工資是乙個資源,由乙個 uri 與之對應,可以通過 http 中的 get 方法得到資源,這是典型的 restful 風格。

rpc 和 restful api 對比

面對物件不同:

restful 是面向資源的設計架構,但在系統中有很多物件不能抽象成資源,比如登入,修改密碼等而 rpc 可以通過動作去操作資源。所以在操作的全面性上 rpc 大於 restful。

傳輸效率:

複雜度:

rpc 實現(參見***節)需要實現編碼,序列化,網路傳輸等。而 restful 不要關注這些,restful 實現更簡單。

靈活性:

總結

rpc 主要用於公司內部的服務呼叫,效能消耗低,傳輸效率高,實現複雜。

RESTful架構與RPC架構

在restful架構中,關注點在於資源,操作資源時使用標準方法檢索並操作資訊片段,在rpc架構中,關注點在於方法,呼叫方法時將像呼叫本地方法一樣呼叫伺服器的方法。rest即表述性狀態傳遞representational state transfer,是一種軟體架構風格,也可以稱作是一種設計api的模...

RESTful架構與RPC架構

在restful架構中,關注點在於資源,操作資源時使用標準方法檢索並操作資訊片段,在rpc架構中,關注點在於方法,呼叫方法時將像呼叫本地方法一樣呼叫伺服器的方法。rest即表述性狀態傳遞representational state transfer,是一種軟體架構風格,也可以稱作是一種設計api的模...

Restful, SOAP,以及RPC對比

rest 一種架構設計風格,提供了設計原則和約束條件 rpc 遠端過程呼叫 是一種允許分布式應用程式呼叫網路上不同計算機的可用服務的機制 soap 簡單物件訪問協議 xml rpc object access protocol 是基於rpc的第三代遠端呼叫 soap是交換資料的一種協議規範,是一種輕...