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