1. 程式人生 > >什麼是rest?什麼是Restful?他們之間關係

什麼是rest?什麼是Restful?他們之間關係

REST服務與Restful風格

一、REST來源

REST:是一組架構約束條件和原則,REST是Roy Thomas Fielding在他2000年的博士論文中提出的。 這裡寫圖片描述 圖 1 Roy Thomas Fielding是HTTP協議(1.0版和1.1版)的主要設計者、Apache伺服器作者之一、Apache基金會第一任主席

二、什麼是REST

REST(Representational State Transfer):表現層狀態轉移,一種軟體架構風格,不是標準。既然不是標準,我可以遵守,也可以不遵守!!! 什麼是表現層狀態轉移:

 Representational (表現層)  State Transfer(狀態轉移):通過HTTP動詞實現。

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

三、什麼是RESTful

 基於REST構建的API就是Restful風格。

四、為什麼使用RESTful

1.JSP技術可以讓我們在頁面中嵌入Java程式碼,但是這樣的技術實際上限制了我們的開發效率,因為需要我們Java工程師將html轉換為jsp頁面,並寫一些指令碼程式碼,或者前端程式碼。這樣會嚴重限制我們的開發效率,也不能讓我們的java工程師專注於業務功能的開發,所以目前越來越多的網際網路公司開始實行前後端分離。 2.近年隨著移動網際網路的發展,各種型別的Client層出不窮,RESTful可以通過一套統一的介面為Web,iOS和Android提供服務。另外對於廣大平臺來說,比如微博開放平臺,微信開放平臺等,它們不需要有顯式的前端,只需要一套提供服務的介面,RESTful無疑是最好的選擇。RESTful架構如下: 這裡寫圖片描述

五、如何設計Restful風格的API

1.路徑設計

 —>在RESTful架構中,每個網址代表一種資源(resource),所以網址中不能有動詞,只能有名詞,而且所用的名詞往往與資料庫的表名對應,一般來說,資料庫中的表都是同種記錄的”集合”(collection),所以API中的名詞也應該使用複數。  —>舉例來說,有一個API提供動物園(zoo)的資訊,還包括各種動物和僱員的資訊,則它的路徑應該設計成下面這樣。

2.HTTP動詞設計

對於資源的具體操作型別,由HTTP動詞表示,常用的HTTP動詞如下:

請求方式 含義
GET 獲取資源(一項或多項)
POST 新建資源
PUT 更新資源(客戶端提供改變後的完整資源)
DELETE 刪除資源

如何通過路徑和http動詞獲悉要呼叫的功能:

請求方式 含義
GET /zoos 列出所有動物園
POST /zoos 新建一個動物園
GET /zoos/ID 獲取某個指定動物園的資訊
PUT /zoos/ID 更新某個指定動物園的資訊(提供該動物園的全部資訊)
DELETE /zoos/ID 刪除某個動物園
GET /zoos/ID/animals 列出某個指定動物園的所有動物
DELETE /zoos/ID/animals/ID 刪除某個指定動物園的指定動物