標籤:json http協議 簡潔 風格 turn 定義 throw mss 參數
springmvc對RESTful得支援
RESTful架構,就是目前最流行得一種互連網軟體架構。它結構清晰、符合標準、易於理解、擴充方便,所以掙得到越來越多網站的採用。
RESTful(即Representational State Transfer變現層狀態轉換)其實是一個開發理念,是對http 的很好的詮釋。
狀態轉換(State Transfer)
用戶端用到的手段,只能是HTTP協議。具體來說就是HTTP協議裡面四個表示操作方式的動詞:GET/POST/PUT/DELETE,分別對應四中基本操作:GET用來擷取資源,POST用來建立資源(也可以用來更新資源),put(用來更新資源),DELETE用來刪除資源。
1、對url進行規範,寫成RESTful格式的url
非RESTful的uri: http://.../queryitems?id=001&type=T01
RESTful的url風格:http://.../items/001
特點:url簡潔,將參數通過url傳到服務端
2、對http的方法進行規範
不管是刪除、添加、更新。。。使用url是一致的,如果需要進行刪除,需要設定http的方法為delete,同理添加。。。
後台controller方法:判斷http方法,如果是delete執行刪除,如果是post執行添加
3、對http的contentType進行規範
請求時指定contentType,要json資料,設定成json格式的type
REST的例子,實現1,3
1、需求:
查詢商品資訊,返回json資料
2、controller
定義方法,進行url映射使用REST風格的url,將查詢商品資訊的id傳入controller.
輸出json使用@ResponseBody將java對象輸出json
//查詢商品資訊,輸出json
@RequestMapping("/itemsView/{id}/{type}")
public @ResponseBody ItemsCustom itemsView(@PathVariable("id") Integer id,@PathVariable("type") String type)throws Exception{
//調用service查詢商品資訊
ItemsCustom itemsCustom = itemsService.query(id,type);
return itemsCustom;
}
@RequestMapping(value="/viewItems/{id}"):{xxx}預留位置,請求的URL可以是"/viewItems/1"或"/viewItems/2",通過在方法中使用@PathVariable擷取{xxx}中的xxx變數
@PathVariable用於將請求URL中的模板變數映射到功能處理方法的參數上。
springmvc的RESTful風格