1. 程式人生 > >什麽是REST,RESTful?

什麽是REST,RESTful?

clas present tran 通過 所有 後臺 員工 狀態 date

轉載自https://www.zhihu.com/question/28557115

https://blog.csdn.net/hjc1984117/article/details/77334616

REST全稱是 Resource Representational State

RESTful:URL定位資源,用HTTP動詞(GET,POST,PUT,DELETE)描述操作

  Resource:資源,即數據。
Representational:某種表現形式,比如用JSON,XML,JPEG等;
State Transfer:狀態變化。通過HTTP動詞實現。

所以RESTful API就是REST風格的API。 那麽在什麽場景下使用RESTful API呢?在當今的互聯網應用的前端展示媒介很豐富。有手機、有平板電腦還有PC以及其他的展示媒介。那麽這些前端接收到的用戶請求統一由一個後臺來處理並返回給不同的前端肯定是最科學和最經濟的方式,RESTful API就是一套協議來規範多種形式的前端和同一個後臺的交互方式。

RESTful API由後臺也就是SERVER來提供前端來調用。前端調用API向後臺發起HTTP請求,後臺響應請求將處理結果反饋給前端。也就是說RESTful 是典型的基於HTTP的協議。那麽RESTful API有哪些設計原則和規範呢?

1,資源。首先是弄清楚資源的概念。資源就是網絡上的一個實體,一段文本,一張圖片或者一首歌曲。資源總是要通過一種載體來反應它的內容。文本可以用TXT,也可以用HTML或者XML、圖片可以用JPG格式或者PNG格式,JSON是現在最常用的資源表現形式。

2,統一接口。RESTful風格的數據元操CRUD(create,read,update,delete)分別對應HTTP方法:GET用來獲取資源,POST用來新建資源(也可以用於更新資源),PUT用來更新資源,DELETE用來刪除資源,這樣就統一了數據操作的接口。

3,URI。可以用一個URI(統一資源定位符)指向資源,即每個URI都對應一個特定的資源。要獲取這個資源訪問它的URI就可以,因此URI就成了每一個資源的地址或識別符。一般的,每個資源至少有一個URI與之對應,最典型的URI就是URL。

4,無狀態。所謂無狀態即所有的資源都可以URI定位,而且這個定位與其他資源無關,也不會因為其他資源的變化而變化。有狀態和無狀態的區別,舉個例子說明一下,例如要查詢員工工資的步驟為第一步:登錄系統。第二步:進入查詢工資的頁面。第三步:搜索該員工。第四步:點擊姓名查看工資。這樣的操作流程就是有狀態的,查詢工資的每一個步驟都依賴於前一個步驟,只要前置操作不成功,後續操作就無法執行。如果輸入一個URL就可以得到指定員工的工資,則這種情況就是無狀態的,因為獲取工資不依賴於其他資源或狀態,且這種情況下,員工工資是一個資源,由一個URL與之對應可以通過HTTP中的GET方法得到資源,這就是典型的RESTful風格。


RESTFUL風格代碼如下:

GET /rest/api/getDogs --> GET /rest/api/dogs 獲取所有小狗狗 
GET /rest/api/addDogs --> POST /rest/api/dogs 添加一個小狗狗 
GET /rest/api/editDogs/:dog_id --> PUT /rest/api/dogs/:dog_id 修改一個小狗狗 
GET /rest/api/deleteDogs/:dog_id --> DELETE /rest/api/dogs/:dog_id 刪除一個小狗狗

什麽是REST,RESTful?