Restful淺解

1、面向資源:

每個資源都有專人負(fù)責(zé),我們可以直接面向資源操作。

/orders

{

"addOrder": {

"orderName": "H&M"

}

}

斜杠和orders表示我們這個請求是發(fā)給哪個資源的,訂單是一種資源,我們可以理解為是衣服制作工廠專門管理訂單的人,他可以幫我們處理所有有關(guān)訂單的操作,包括新增訂單、修改訂單、取消訂單等操作

注:面向資源,對構(gòu)建可伸縮、分布式的架構(gòu)至關(guān)重要的。同時,如果面向資源使用的數(shù)據(jù)格式是Xml,那么其實就是SOAP,SOAP的特點是關(guān)注行為和處理,和面向資源的RESTful有很大的不同。

2、給請求打上標(biāo)簽

新增資源的請求,都在請求上面寫上大大的‘POST’,表示這是一筆新增資源的請求

查詢類的請求,用‘GET’表示

刪除類的請求,用‘DELETE’表示”

修改類的請求,修改分為兩種:

第一種,如果這個修改,無論發(fā)送多少次,最后一次修改后的資源,總是和第一次修改后的一樣,比如更改訂單的衣服的款式,那么用‘PUT’表示

第二種,如果這個修改,每次修改都會讓這個資源和前一次的不一樣,比如是訂單中加一件衣服,那么這種請求用‘PATCH’或者‘POST’表示

以上使用了HTTP動詞,GET/PUT/POST/DELETE/PATCH....,這些都是HTTP的規(guī)范,規(guī)范的作用自然是重大的,用戶看到一個POST請求,就知道它不是冪等的,使用時要小心,看到PUT,就知道他是冪等的,多調(diào)用幾次都不會造成問題

3、在請求中同時返回所有可以對此所做的操作及如何操作,比如告訴請求者如何刪除訂單

在請求中返回可以做哪些操作,這種操作叫HATEOAS(Hypertext As The Engine Of Application State),中文翻譯為“將超媒體格式作為應(yīng)用狀態(tài)的引擎”,核心思想就是每個資源都有它的狀態(tài),不同狀態(tài)下,可對它進(jìn)行的操作不一樣。理解了這一層,REST的全稱,Representational State Transfer,中文“表述性狀態(tài)轉(zhuǎn)移”就容易理解多了。

這種設(shè)計的Restful API,給使用者帶來很大的便利:

使用者只需要知道如何獲取資源的入口,之后的每個URI都可以通過請求獲得,無法獲得就說明無法執(zhí)行那個請求。

做到了面向資源和使用Http動詞,就已經(jīng)很Restful了。Restful本身也不是一種規(guī)范,Restful風(fēng)格來稱呼更合適一些。

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

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • 一說到REST,我想大家的第一反應(yīng)就是“啊,就是那種前后臺通信方式。”但是在要求詳細(xì)講述它所提出的各個約束,以及如...
    時待吾閱讀 3,598評論 0 19
  • 原文鏈接:https://https://howardwchen.com/2017/09/18/talk-abou...
    守望者Howard閱讀 6,569評論 1 6
  • 老婆經(jīng)常喜歡翻看我訂閱的技術(shù)雜志,她總能從她的視角提出很多有趣的問題。 一個悠閑的周日下午,她午覺醒來,又習(xí)慣性的...
    柳樹之閱讀 26,547評論 111 736
  • 整數(shù)類型 byte:0 -- 255 int:-2147483648 -- 2,147,483,647 long:...
    Lymon閱讀 322評論 0 0

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