了解用於HTTP API的RPC Vs REST,RPC很少有人聽說

在過去幾年中,每當有人想要開始構建HTTP API時,他們幾乎都將REST作為首選架構風格,而不是XML-RPC,SOAP和JSON-RPC等替代方法。REST被許多人制作成最終優於其他“基於RPC”的方法,這有點誤導,RPC 與REST或其他風格都是各有千秋。

在REST變得流行之前(在Twitter和Facebook等公司將其API標記為REST之後),大多數API都是使用XML-RPC或SOAP構建的。XML-RPC存在問題,因為確保XML有效負載的數據類型很難。在XML中,很多東西都只是字符串,因此需要在上面對元數據進行分層,以便描述諸如哪些字段對應於哪些數據類型之類的內容,這成為SOAP(簡單對象訪問協議)基礎的一部分。XML-RPC和SOAP以及自定義的本地解決方案長期以來一直主導著API領域,並且都是基於RPC的HTTP API。

瞭解用於HTTP API的RPC Vs REST,RPC很少有人聽說

“RPC”也稱“遠程過程調用”,它基本上與在JavaScript,PHP,Python等中調用函數,獲取方法名稱和參數相同。RPC API可以使用JSON-RPC協議,或者可以像Slack使用其Web API一樣滾動自定義的基於JSON的API。

瞭解用於HTTP API的RPC Vs REST,RPC很少有人聽說

RPC Vs REST 存在很大的概念差異,即使它們看起來很相似:

  • RPC。我們正在發送一條消息,這可能最終會在數據庫中存儲一些內容來保存歷史記錄,這可能是另一個可能具有相同字段名稱的RPC調用 ,所以比較難判斷。
  • REST。我們正在用戶的消息集合中創建消息資源。我們可以通過GET,在同一個URL上輕鬆查看這些歷史記錄,並在後臺發送消息。
瞭解用於HTTP API的RPC Vs REST,RPC很少有人聽說

​在規劃新API時,瞭解REST和RPC之間的差異非常有用,或許使用兩者並擁有兩全其美!


分享到:


相關文章: