怎樣用通俗的語(yǔ)言解釋REST,以及RESTful?

可怕的學(xué)術(shù)式解釋

了解了什么是REST,我們?cè)倏纯碦ESTful的實(shí)現(xiàn)。最近,使用 RPC 樣式架構(gòu)構(gòu)建的基于 SOAP 的 Web 服務(wù)成為實(shí)現(xiàn) SOA 最常用的方法。RPC 樣式的 Web 服務(wù)客戶端將一個(gè)裝滿數(shù)據(jù)的信封(包括方法和參數(shù)信息)通過(guò) HTTP 發(fā)送到服務(wù)器。服務(wù)器打開(kāi)信封并使用傳入?yún)?shù)執(zhí)行指定的方法。方法的結(jié)果打包到一個(gè)信封并作為響應(yīng)發(fā)回客戶端。客戶端收到響應(yīng)并打開(kāi)信封。每個(gè)對(duì)象都有自己獨(dú)特的方法以及僅公開(kāi)一個(gè) URI 的 RPC 樣式 Web 服務(wù),URI 表示單個(gè)端點(diǎn)。它忽略 HTTP 的大部分特性且僅支持 POST 方法。

一頭霧水有木有?

REST的定義

直譯

  • REpresentational State Transfer :表現(xiàn)層狀態(tài)轉(zhuǎn)移
  • 更全的術(shù)語(yǔ):Resource Representational State Transfer(資源在網(wǎng)絡(luò)中以某種形式進(jìn)行狀態(tài)轉(zhuǎn)移)
  • Resource(資源):即數(shù)據(jù)
  • Representational(表現(xiàn)形式):比如用JSON,XML,JPEG等
  • State Transfer(狀態(tài)變化):通過(guò)HTTP動(dòng)詞實(shí)現(xiàn)

大咖描述的REST

  • URL定位資源,用HTTP動(dòng)詞(GET,POST,DELETE,DETC)描述操作。

牛人給的解釋

  1. REST描述的是在網(wǎng)絡(luò)中client和server的一種交互形式。REST本身不實(shí)用,實(shí)用的是如何設(shè)計(jì)RESTful API(REST風(fēng)格的網(wǎng)絡(luò)接口)。
  2. Server提供的RESTful API中,URL中只使用名詞來(lái)指定資源,原則上不使用動(dòng)詞。用HTTP協(xié)議里的動(dòng)詞來(lái)實(shí)現(xiàn)資源的添加,修改,刪除等操作。
    例如:


    Paste_Image.png
  • 保證 HEAD 和 GET 方法是安全的,不會(huì)對(duì)資源狀態(tài)有所改變(污染,不推薦:GET /deleteProduct?id=1
  • 資源的地址推薦用嵌套結(jié)構(gòu),如:GET /friends/10375923/profile
  • 警惕返回結(jié)果的大小。如果過(guò)大,及時(shí)進(jìn)行分頁(yè)(pagination)或者加入限制(limit)。HTTP協(xié)議支持分頁(yè)(Pagination)操作,在Header中使用 Link 即可。
  • 使用正確的HTTP Status Code表示訪問(wèn)狀態(tài)
  • 在返回結(jié)果用明確易懂的文本
  • 考慮安全性:盡量使用https
  1. 為什么要使用RESTful API
  • RESTful可以通過(guò)一套統(tǒng)一的接口為 Web,iOS和Android提供服務(wù)

轉(zhuǎn)載于:https://www.zhihu.com/question/28557115

————
前端·tj
紙上得來(lái)終覺(jué)淺,絕知此事要躬行

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容