Restful一種軟件架構風格、設計風格,而不是標準,只是提供了一組設計原則和約束條件。它主要用於客戶端和服務器交互類的軟件。基於這個風格設計的軟件能夠更簡潔,更有層次,更易於實現緩存等機制。spring
隨着Restful風格的流行,如今更多的人叫HTTP接口爲Restful接口。因此仍是頗有必要了解下Restful的一些基礎約定的。json
網絡上的全部事物都被抽象爲資源,使用http方法表示具體操做,以下:api
冪等的意思是說,屢次相同的請求,數據是保持一致的。緩存
http://127.0.0.1/user/query/1 GET 根據用戶id查詢用戶數據springboot
http://127.0.0.1/user/save POST 新增用戶bash
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 刪除用戶信息
基於上一節的項目。這裏先不考慮參數接受問題,將會在下一講詳細講解
而且在類上使用@RestController註解。
@RestController
@RequestMapping(value = "/api/v1/users")
public class UserController {
}
複製代碼
這就快速建立出了一個Controller,與SpringMVC不一樣的@Controller不一樣的是,這裏使用了RestController註解,其效果等於Controller註解+ResponseBody註解的效果,即返回json格式的數據。
RequestMapping註解表示這個類的前置url。
@PostMapping
public Object addUser() {
// 新增一個用戶
return "OK";
}
複製代碼
這裏PostMapping不寫url,表示這個接口地址爲這個Controller的前置地址
@GetMapping(value = "/{userId}")
public Object getUser(@PathVariable(value = "userId") Integer userId) {
// 根據ID查找一個用戶
return "User";
}
複製代碼
@DeleteMapping(value = "/{userId}")
public Object deleteUser(@PathVariable(value = "userId") Integer userId) {
// 根據id刪除一個用戶
return "OK";
}
複製代碼
@PutMapping
public Object updateUser() {
// 跟新
return "OK";
}
複製代碼
這裏提一下PatchMapping,Patch請求方法也是更新操做,若是要細緻的與PutMapping區分,則是PatchMapping對應部分更新,PutMapping對應總體覆蓋的更新。