RESTFul风格:
简介 :
REST (Representational State Transfer) : 表现形式状态转换
也就是访问文件资源的格式
传统风格资源描述形式:
- http://localhost/user/getById?id=1
- http://localhost/user/saveUser
REST风格描述形式 :
- http://localhost/user/1
- http://localhost/user
优点 :
- 隐藏资源的访问行为 , 无法通过地址得知对资源是何种操作
- 书写简化
REST风格书写格式 :
- http://localhost/users : 查询全部用户信息 GET (查询)
- http://localhost/users/1 : 查询指定用户信息 GET (查询)
- http://localhost/users : 添加用户信息 POST (新增/保存)
- http://localhost/users : 修改用户信息 PUT (修改/更新)
- http://localhost/users/1 : 删除用户信息 DELETE (删除)
上述行为是约定方式 , 约定不是规范 , 可以打破 , 所以称为REST风格 , 而不是REST规范 ,
描述模块的名称通常使用复数 , 也就是加s的格式描述 , 表示此类资源 , 而非单个的资源
入门案例 :
@RequestMapping(value="/users/{id}",method=RequestMethod.GET)
//这里的{}中的值命名 ,
//要和想要赋值的参数名一致 , 参数名前要加@PathVariable注解
@ResponseBody
public String delete(@PathVariable Integer id){
return "{'module':'user delete'}";
}
开发时的选择 :
@RequestBody , @RequestParam , @PathVariable
区别 :
- @RequestBody : 用于接收json数据
- @RequestParam : 用于接收url地址传参或者表单传参
- @PathVariable : 用于接收路径参数 , 使用(参数名称)描述路径参数
应用 :
- 后期开发中 , 发送请求参数超过一个时 , 以json格式为主 , @RequestBody应用较广
- 如果发送非json格式数据 , 选用@RequestParam接收请求参数
- 采用RESTful进行开发 , 当参数数量较少时 , 例如一个 , 可以采用@PathVariable接收请求路径的变量 , 通常用于传递id值
对于注解的简单写法 :
(1)对于一些所有方法都要添加的注解 , 或者注解的属性 , 我们可以直接添加在类的上边 ,
(2)比如说 : @ResponseBody , 是设置return的值直接返回前端的 ,而不是跳转 ,
- 之前是在每一个方法上都要添加 , 之后 ,可以直接加在类上边即可
(3)同时 @Controller 和 @ResponseBody是可以直接 合并成为一个的
- @RestController : 这个注解包含了上边的两个注解
(4)之前在使用@RquestMapping的时候 , 还要添加对应的属性 : 请求的形式
之后 , 可以直接使用 @请求形式Mapping() 的注解来进行设置 ,
注意 , 对于RestFul风格的请求 , 还是要设置对应的参数占位符 “/{}”