Restful API 和RPC API

總結(jié)一下

  • RESTful 是目前最流行的 API 設(shè)計(jì)規(guī)范,用于 Web 數(shù)據(jù)接口的設(shè)計(jì)妻坝。(感覺比較適合大型項(xiàng)目、多團(tuán)隊(duì)合作項(xiàng)目)
  • RPC的核心思想是把本地的方法映射到API芥颈,比如我本地有一個方法是getUser()

RESTful的可讀性更好惠勒,即使完全不了解業(yè)務(wù)赚抡,看到API也知道這個接口是干嘛的爬坑,但是有時候不好抽象,比如login操作涂臣,你用Restful如何抽象盾计?
Restful規(guī)范最大的好處:命名統(tǒng)一,避免相同的功能因?yàn)槊L(fēng)格不同赁遗,而創(chuàng)建了一大堆冗余的接口署辉。既浪費(fèi)了編程資源(相同的功能寫了多個接口),又不好維護(hù)(修改一個功能岩四,要修改多個命名不同的接口)

RPC規(guī)范的話哭尝,當(dāng)然是簡單暴力,后端程序員更喜歡剖煌,寫給自己小伙伴的接口規(guī)范材鹦,但是在大型項(xiàng)目、多team合作項(xiàng)目耕姊、前后端分離項(xiàng)目時桶唐,可讀性很差。有時候一個功能相同接口茉兰,會出現(xiàn)好幾個尤泽。因?yàn)榭赡茼?xiàng)目移交給別的team做,新team沒空研究之前的代碼规脸,直接寫一個新的接口完成同一個業(yè)務(wù)功能坯约。
比如

  • /getUser?id=,
  • /getUserById?id=
  • /getUserByPrimary?id=
    但是有了restful規(guī)范的話莫鸭,就可以大大降低這種事情的概率鬼店,因?yàn)槎际?GET /users/{id}

REST VS RPC

  1. REST的主體是資源,而RPC更側(cè)重于動作黔龟。

  2. REST更偏向外部調(diào)用妇智,RPC更偏向內(nèi)部調(diào)用滥玷。在國內(nèi),一般更偏向于RPC巍棱,比如阿里出的dubbo惑畴;在國外,更倡導(dǎo)REST航徙,比如spring cloud如贷,是個純REST的項(xiàng)目,不支持RPC到踏。(當(dāng)然杠袱,近幾年REST在國內(nèi)也開始火起來了)

  3. REST其實(shí)是個效率很低的東西,特別是需要聯(lián)合查詢的時候窝稿;并且有些東西楣富,也不好抽象成資源,比如用戶登錄伴榔、用戶退出

  4. RPC只需要關(guān)心業(yè)務(wù)場景纹蝴,但是如果業(yè)務(wù)理解不夠,你可能不會理解這些API是做什么用的(優(yōu)秀的RESTful API的設(shè)計(jì)踪少,就算不懂業(yè)務(wù)塘安,只要會一些英文,應(yīng)該通過URL就能猜到每個API是做什么的)援奢。

  5. 前端可能更喜歡REST兼犯,而后端估計(jì)更傾向于RPC。

restful api細(xì)節(jié)

還是看阮一峰大佬的博客吧集漾,更詳細(xì)切黔,摘錄幾個印象比較深的點(diǎn)

  1. 必須要摒棄RPC的做法啊,比如新增用戶
    標(biāo)準(zhǔn)寫法: POST /users
    如果你寫成 POST /users/add帆竹,那么就會有人寫成: POST /users/insert ,POST /users/create绕娘,所以賓語必須是名詞,而且最好是統(tǒng)一用復(fù)數(shù)

  2. 避免多級 URL
    GET /authors/12?categories=2

  3. response 必須是json的

  4. 返回正確的code

參考

阮一峰大佬的博客
http://www.ruanyifeng.com/blog/2018/10/restful-api-best-practices.html

講區(qū)別的
http://www.360doc.com/content/18/0730/00/99071_774291878.shtml

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末栽连,一起剝皮案震驚了整個濱河市险领,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌秒紧,老刑警劉巖绢陌,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異熔恢,居然都是意外死亡脐湾,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門叙淌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來秤掌,“玉大人愁铺,你說我怎么就攤上這事∥偶” “怎么了茵乱?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長孟岛。 經(jīng)常有香客問我瓶竭,道長,這世上最難降的妖魔是什么渠羞? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任斤贰,我火速辦了婚禮,結(jié)果婚禮上次询,老公的妹妹穿的比我還像新娘荧恍。我一直安慰自己,他們只是感情好渗蟹,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布块饺。 她就那樣靜靜地躺著赞辩,像睡著了一般雌芽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上辨嗽,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天世落,我揣著相機(jī)與錄音,去河邊找鬼糟需。 笑死屉佳,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的洲押。 我是一名探鬼主播武花,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼杈帐!你這毒婦竟也來了体箕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤挑童,失蹤者是張志新(化名)和其女友劉穎累铅,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體站叼,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡娃兽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了尽楔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片投储。...
    茶點(diǎn)故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡第练,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出玛荞,到底是詐尸還是另有隱情复旬,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布冲泥,位于F島的核電站驹碍,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏凡恍。R本人自食惡果不足惜志秃,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嚼酝。 院中可真熱鬧浮还,春花似錦、人聲如沸闽巩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽涎跨。三九已至洼冻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間隅很,已是汗流浹背撞牢。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留叔营,地道東北人屋彪。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像绒尊,于是被迫代替她去往敵國和親畜挥。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容