一分鐘理解什麼是REST和RESTful

2021-09-26 02:23:27 字數 1073 閱讀 7256

從事web開發工作有一小段時間,rest風格的介面,這樣的詞彙總是出現在耳邊,然後又沒有完全的理解,您是不是有和我相同的疑問呢?那我們一起來一**竟吧!

就是用url定位資源,用http描述操作。

知乎大神ivony有句話說的好:

url定位資源,用http動詞(get,post,delete,detc)描述操作。

咱們不解釋rest是哪幾個單詞的首字母,說了也不知道,翻譯成中文就是表現層狀態轉移,我是弄不懂。

在設計web介面的時候,rest主要是用於定義介面名,介面名一般是用名次寫,不用動詞,那怎麼表達「獲取」或者「刪除」或者「更新」這樣的操作呢——用請求型別來區分。

比如,我們有乙個friends介面,對於「朋友」我們有增刪改查四種操作,怎麼定義rest介面?

增加乙個朋友,uri: generalcode.cn/v1/friends 介面型別:post

刪除乙個朋友,uri: generalcode.cn/va/friends 介面型別:delete

修改乙個朋友,uri: generalcode.cn/va/friends 介面型別:put

查詢朋友,uri: generalcode.cn/va/friends 介面型別:get

上面我們定義的四個介面就是符合rest協議的,請注意,這幾個介面都沒有動詞,只有名詞friends,都是通過http請求的介面型別來判斷是什麼業務操作。

舉個反例:generalcode.cn/va/deletefriends 該介面用來表示刪除朋友,這就是不符合rest協議的介面。

一般介面的返回值是json或者xml型別的,筆者在網際網路的工作經驗一般都是json型別的。

用http status code傳遞server的狀態資訊。比如最常用的 200 表示成功,500 表示server內部錯誤,403表示bad request等。(反例:傳統web開發返回的狀態碼一律都是200,其實不可取。)

那這種風格的介面有什麼好處呢?前後端分離。前端拿到資料只負責展示和渲染,不對資料做任何處理。後端處理資料並以json格式傳輸出去,定義這樣一套統一的介面,在web,ios,android三端都可以用相同的介面,是不是很爽?!

一分鐘理解sdk

外語 software development kit 中文 軟體開發工具包 含義 一般都是一些軟體工程師為特定的軟體包 軟體框架 硬體平台 作業系統等建立應用軟體時的開發工具的集合。通俗 是指由第三方服務商提供的實現軟體產品某項功能的工具包。出現形式 一般以集合kpi和文件 範例 工具的形式出現 ...

一分鐘sed入門(一分鐘系列)

1.簡介 sed是一種行編輯器,它一次處理一行內容。2.sed呼叫方式 sed options command file s sed options f scriptfile file s 第一種直接在命令列中執行,第二種把命令寫到了指令碼中,二者無本質區別。示例 1 列印hello.txt的內容 ...

一分鐘看懂mysql 一分鐘,看懂易貨

從20世紀80年代開始,易貨公司在美國加拿大 澳大利亞等國興起,成為這些國家減少現金用量 增加銷售 減少庫存 開發新客戶 開闢新市場 促進經濟發展的重要產業。也成為了企業消化庫存商品 剩餘生產能力 無形資產的有效方式和在遭遇資金瓶頸時的新選擇。2015年以來,中國線下易貨店開始了矇眼狂奔,在河南南陽...