一、概述
REST(英文:Representational State Transfer,簡稱REST)
一種軟件架構風格、設計風格,而不是標准,只是提供了一組設計原則和約束條件。它主要用於客戶端和服務器交互類的軟件。基於這個風格設計的軟件可以更簡潔,更有層次,更易於實現緩存等機制。
二、什么是RESTful
REST 指的是一組架構(約束條件)和原則。滿足這些(約束條件)和(原則)的應用程序或設計就是 RESTful。
三、restful有什么特點
1.每一個URI代表一種資源,獨一無二
2.客戶端和服務器之間,傳遞這種資源的某種表現層
3.客戶端通過四個HTTP動詞,對服務器端資源進行操作,實現"表現層狀態轉化"。
四、具體用例
RESTful架構風格規定,數據的元操作,即CRUD(create, read, update和delete,即數據的增刪查改)操作,分別對應於HTTP方法:GET用來獲取資源,POST用來新建資源(也可以用於更新資源),PUT用來更新資源,DELETE用來刪除資源,這樣就統一了數據操作的接口,僅通過HTTP方法,就可以完成對數據的所有增刪查改工作。
即:
GET(SELECT):從服務器取出資源(一項或多項)。
POST(CREATE):在服務器新建一個資源。
PUT(UPDATE):在服務器更新資源(客戶端提供完整資源數據)。
PATCH(UPDATE):在服務器更新資源(客戶端提供需要修改的資源數據)。
DELETE(DELETE):從服務器刪除資源。
使用RESTful操作資源
【GET】 /users # 查詢用戶信息列表
【GET】 /users/1001 # 查看某個用戶信息
【POST】 /users # 新建用戶信息
【PUT】 /users/1001 # 更新用戶信息(全部字段)
【PATCH】 /users/1001 # 更新用戶信息(部分字段)
【DELETE】 /users/1001 # 刪除用戶信息
————————————————
RESTful的CRUD
@RequestMapping:通過設置method屬性的CRUD,可以將同一個URL映射到不同的HandlerMethod方法上。
@GetMapping、@PostMapping、@PutMapping、@DeleteMapping注解同@RequestMapping注解的method屬性設置。
我們都知道在沒有出現RESTful風格之前,我們的代碼是這樣的。

那么RESTful風格要求的是這樣的

五、結論
RESTful風格要求每個資源都使用 URI (Universal Resource Identifier) 得到一個唯一的地址。所有資源都共享統一的接口,以便在客戶端和服務器之間傳輸狀態。使用的是標准的 HTTP 方法,比如 GET、PUT、POST 和 DELETE。
總之就是REST是一種寫法上規范,獲取數據或者資源就用GET,更新數據就用PUT,刪除數據就用DELETE,然后規定方法必須要傳入哪些參數,每個資源都有一個地址。
