REST风格
REST 是一种软件架构风格,其本身是围绕HTTP的URI资源进行约束。
- URI 中不能有动词,因为 URI 本身是资源的表示,所以网址中不能有动词,只能由名词,动词由 HTTP 协议中的操作:GET、POSE、PUT、DELETE 四种方法表示。
- 如果有自定以的状态码,由于 REST 本身是根据 HTTP 协议进行规范的,所以尽量使用 HTTP 协议的状态码。
- 200:OK 请求响应成功,服务器返回数据,该操作是幂等的
- 201:CREATED 新建或者修改数据成功
- 204:NOT CONTENT 删除数据成功
- 400:BAD REQUEST 用户发出的请求有问题,该操作是幂等的
- 401:Unauthoried 表示用户没有认证,无法进行操作
- 403:Forbidden 用户访问是被禁止的
- 404:Not Found 请求资源不存在
- 422:Unprocesable Entity 当创建一个对象时,发生一个验证错误
- 500:INTERNAL SERVER ERROR 服务器内部错误,用户无法判断请求是否成功
- 503:Service Unavailable 服务器不可用状态,多半是服务器问题,例如CPU占用率打等。
风格差别:
-
普通写法:http://localhost:6666/项目名/product/load?id=12345
-
REST风格:http://localhost:6666/项目名/product/load/12345
REST风格的使用:
@RequestMapping(value="/{id}" RequestMethod="Get")
public String getId(@PathVariable("id") Integer id){
System.out.println("id");
return "XXX";
}
springboot下REST风格:
springboot 中将属性 RequestMethod 与 Mapping 整合起来形成新的标签,简化使用
@GetMapping(value="/{id}")
public String getId(@PathVariable("id") Integer id){
System.out.println("id");
return "XXX";
}
RESTCURD:
普通CRUD | RestfulCRUD | 操作 | |
---|---|---|---|
查询 | getEmp | emp----GET | 获取资源 |
添加 | addEmp?xxx | emp----POST | 新建资源 |
修改 | updateEmp?id=xxx&xxx=xx | emp/{id}----PUT | 更新资源(向服务器提供需要改变的资源的所有信息) |
删除 | deleteEmp?id=1 | emp/{id}----DELETE | 删除资源 |