REST 簡介
REST 代表表現層狀態轉移(REpresentational State Transfer),由 Roy Fielding 在他的 論文 中提出。REST 是一種軟體架構風格,不是技術框架,REST 有一系列規範,滿足這些規範的 API 均可稱為 RESTful API。REST 規範中有如下幾個核心:
- 1, REST 中一切實體都被抽象成資源,每個資源有一個唯一的標識 —— URI,所有的行為都應該是在資源上的 CRUD 操作
- 2, 使用標準的方法來更改資源的狀態,常見的操作有:資源的增刪改查操作
- 3, 無狀態:這裡的無狀態是指每個 RESTful API 請求都包含了所有足夠完成本次操作的資訊,伺服器端無須保持 Session
無狀態對於服務端的彈性擴容是很重要的。
REST 風格雖然適用於很多傳輸協議,但在實際開發中,REST 由於天生和 HTTP 協議相輔相成,因此 HTTP 協議已經成了實現 RESTful API 事實上的標準。在 HTTP 協議中透過 POST、DELETE、PUT、GET 方法來對應 REST 資源的增、刪、改、查操作,具體的對應關係如下:
HTTP | 方法 | 行為 | URI | 示例說明 |
---|---|---|---|---|
GET | 獲取資源列表 | /users | 獲取使用者列表 | |
GET | 獲取一個具體的資源 | /users/admin | 獲取 admin 使用者的詳細資訊 | |
POST | 建立一個新的資源 | /users | 建立一個新使用者 | |
PUT | 以整體的方式更新一個資源 | /users/1 | 更新 id 為 1 的使用者 | |
DELETE | 刪除伺服器上的一個資源 | /users/1 | 刪除 id 為 1 的使用者 |