SSM框架中RESTful風格的實現
REST這個詞,是Roy Thomas Fielding在他2000年的博士論文中提出的。
如果一個架構符合REST原則,就稱它為RESTful架構。
REST,即Representational State Transfer的縮寫,我對這個詞組的翻譯是"表現層狀態轉化"。它是一種軟件架構風格、設計風格,而不是標準,只是提供了一組設計原則和約束條件。它主要用於客戶端和服務器交互類的軟件。基於這個風格設計的軟件可以更簡潔,更有層次,更易於實現緩存等機制。
對於資源的具體操作類型,由HTTP動詞表示。
常用的HTTP動詞有下面五個(括號裏是對應的SQL命令)。
GET(SELECT):從服務器取出資源(一項或多項)。
POST(CREATE):在服務器新建一個資源。
PUT(UPDATE):在服務器更新資源(客戶端提供改變後的完整資源)。
PATCH(UPDATE):在服務器更新資源(客戶端提供改變的屬性)。
DELETE(DELETE):從服務器刪除資源。
還有兩個不常用的HTTP動詞。
HEAD:獲取資源的元數據。
OPTIONS:獲取信息,關於資源的哪些屬性是客戶端可以改變的。
SpringMVC的RESTful風格的實現是通過@RequestMapping 及@PathVariable 註解實現的。
/blog/1 HTTP GET => 得到id = 1的blog
/blog/1 HTTP DELETE => 刪除 id = 1的blog
/blog/1 HTTP PUT => 更新id = 1的blog
/blog HTTP POST => 新增BLOG
GET /tickets - 獲取 tickets 列表
GET /tickets/12 - 獲取一個單獨的 ticket
POST /tickets - 創建一個新的 ticket
PUT /tickets/12 - 更新 ticket #12
PATCH /tickets/12 - 部分更新 ticket #12
DELETE /tickets/12 - 刪除 ticket #12
GET /tickets/12/messages - 獲取ticket #12下的消息列表
GET /tickets/12/messages/5 - 獲取ticket #12下的編號為5的消息
POST /tickets/12/messages - 為ticket #12創建一個新消息
PUT /tickets/12/messages/5 - 更新ticket #12下的編號為5的消息
PATCH /tickets/12/messages/5 - 部分更新ticket #12下的編號為5的消息
DELETE /tickets/12/messages/5 - 刪除ticket #12下的編號為5的消息
具體為:
@RequestMapping(value = "/tickets/{ticketsId}",method = RequestMethod.POST) public JsonResult<String> delTicketsId(@PathVariable String ticketsId){ ...... }
參考博客:
1.http://www.ruanyifeng.com/blog/2014/05/restful_api.html
2.http://www.ruanyifeng.com/blog/2011/09/restful
3.http://www.blogjava.net/soken/articles/371548.html
4.http://www.blogjava.net/soken/articles/371548.html
SSM框架中RESTful風格的實現