1. 程式人生 > >談談對Restful的理解

談談對Restful的理解

1.Restful是什麼?    REST是英文representational state transfer(表象性狀態轉變)或者表述性狀態轉移;Rest是web服務的一種架構風格;使用HTTP,URI,XML,JSON,HTML等廣泛流行的標準和協議;輕量級,跨平臺,跨語言的架構設計;它是一種設計風格,不是一種標準,是一種思想. 2.為什麼會出現Restful? 在Restful之前的操作: http://127.0.0.1/user/query/1 GET 根據使用者id查詢使用者資料 http://127.0.0.1/user/save POST 新增使用者 http://127.0.0.1/user/update POST 修改使用者資訊

http://127.0.0.1/user/delete GET/POST 刪除使用者資訊

Restful用法: http://127.0.0.1/user/1 GET 根據使用者id查詢使用者資料 http://127.0.0.1/user POST 新增使用者 http://127.0.0.1/user PUT 修改使用者資訊 http://127.0.0.1/user DELETE 刪除使用者資訊   之前的操作是沒有問題的,大神認為是有問題的,有什麼問題呢?你每次請求的介面或者地址,都在做描述,例如查詢的時候用了query,新增的時候用了save,其實完全沒有這個必要,我使用了get請求,就是查詢.使用post請求,就是新增的請求,我的意圖很明顯,完全沒有必要做描述,這就是為什麼有了Restful. 在這裡插入圖片描述

3.Restful原則條件?   網路上的所有事物都被抽象為資源, 每個資源都有一個唯一的資源識別符號,同一個資源具有多種表現形式(xml,json等),對資源的各種操作不會改變資源識別符號, 所有的操作都是無狀態的.   在RESTful架構中,每個網址代表一種資源(resource),所以網址中不能有動詞,只能有名詞,而且所用的名詞往往與資料庫的表格名對應。一般來說,資料庫中的表都是同種記錄的"集合"(collection),所以API中的名詞也應該使用複數。RESTful是一種架構的規範與約束、原則,符合這種規範的架構就是RESTful架構。   Web 應用程式最重要的 REST 原則是,客戶端和伺服器之間的互動在請求之間是無狀態的。從客戶端到伺服器的每個請求都必須包含理解請求所必需的資訊。如果伺服器在請求之間的任何時間點重啟,客戶端不會得到通知。此外,無狀態請求可以由任何可用伺服器回答,這十分適合雲端計算之類的環境。客戶端可以快取資料以改進效能。   在伺服器端,應用程式狀態和功能可以分為各種資源。資源是一個有趣的概念實體,它向客戶端公開。資源的例子有:應用程式物件、資料庫記錄、演算法等等。每個資源都使用 URI (Universal Resource Identifier) 得到一個唯一的地址。所有資源都共享統一的介面,以便在客戶端和伺服器之間傳輸狀態。使用的是標準的 HTTP 方法,比如 GET、PUT、POST 和 DELETE。Hypermedia 是應用程式狀態的引擎,資源表示通過超連結互聯。