Rest风格
Rest简介
-
Rest(Representational State Transfer),表现形式状态转换
-
传统风格资源描述形式
http://localhost/user/getById?id=1
http://localhost/user/saveUser
-
Rest风格描述形式
http://localhost/user/1
http://localhost/user/user
-
-
优点
- 隐藏资源的访问行为,无法通过地址得知对资源是何种操作
- 书写简化
REST风格简介
- 按照REST风格访问资源时使用行为动作区分对资源进行了何种操作
- http://localhost/users 查询全部用户信息 GET(查询)
- http://localhost/users/1 查询指定用户信息 GET(查询)
- http://localhost/users 添加用户信息 POST(新增/保存)
- http://localhost/users 修改用户信息 PUT(修改/更新)
- http://localhost/users/1 删除用户信息 DELETE(删除)
- 根据REST风格对资源进行访问成为RESTful
上诉行为是约定方式,约定不是规范,可以打破,所以称为REST风格,而不是REST规范
描述模块的名称通常使用复数,也就是加s的格式描述,表示此类资源,而非单个资源,例如:users、books、accounts......
RESTful快速入门
- 设定http请求动作(动词)
@RequestMapping(value = \"/users\",method = RequestMethod.POST)
@ResponseBody
public String update(@PathVariable User user){
System.out.println(\"user delete...\"+user);
return \"{\'module\':\'user update\'}\";
}
@RequestMapping(value = \"/users\",method = RequestMethod.PUT)
@ResponseBody
public String update(@PathVariable User user){
System.out.println(\"user delete...\"+user);
return \"{\'module\':\'user update\'}\";
}
- 设置请求参数(路径变量)
@RequestMapping(value = \"/users/{id}\",method = RequestMethod.DELETE)
@ResponseBody
public String delete(@PathVariable Integer id){
System.out.println(\"user delete...\"+id);
return \"{\'module\':\'user delete\'}\";
}
- 名称: @RequestMapping
- 类型:方法注解
- 位置:SpringMvc控制器方法定义上方
- 作用:设置当前控制器方法请求访问路径
- 示例:
@RequestMapping(value = \"/users/{id}\",method = RequestMethod.DELETE)
@ResponseBody
public String delete(@PathVariable Integer id){
System.out.println(\"user delete...\"+id);
return \"{\'module\':\'user delete\'}\";
}
-
属性:
- value(默认):请求访问路径
- method:http请求动作,标准动作(GET/POST/PUT/DELETE)
-
名称:@PathVariable
-
类型:形参注解
-
位置:SpringMvc控制器方法形参定义前面
-
作用:绑定路径参数与处理器方法形参间的关系,要求路径参数名与形参名一 一对应
-
示例:
@RequestMapping(value = \"/users/{id}\",method = RequestMethod.DELETE)
@ResponseBody
public String delete(@PathVariable Integer id){
System.out.println(\"user delete...\"+id);
return \"{\'module\':\'user delete\'}\";
}
- 区别
- @RequestParam用与接收url地址传参或表单传参
- @RequestBody用于接收json数据
- @PathVariable用于接收路径参数,使用{参数名称}描述路径参数
- 应用
- 后期开发中,发送请求参数超过一个小时,以json格式为主,@RequestBody应用较广
- 如果发送非json格式数据,选用@RequesParam接收请求参数
- 采用RESTful进行开发,当参数数量较少时,例如一个。可以采用@PathVariable接收请求路径变量,通常用于传递id值
RESTful快速开发
//Rest模式
@RestController//相当于@ResponseBody+@Controller
@RequestMapping( \"/books\")
public class BookController {
//@RequestMapping( method = RequestMethod.POST)
@PostMapping
public String save(){
System.out.println(\"user save...\");
return \"{\'module\':\'user save\'}\";
}
//@RequestMapping(value = \" /{id}\",method = RequestMethod.DELETE)
@DeleteMapping(\"/{id}\")
public String delete(@PathVariable Integer id){
System.out.println(\"user delete...\"+id);
return \"{\'module\':\'user delete\'}\";
}
//@RequestMapping(method = RequestMethod.PUT)
@PutMapping
public String update(@PathVariable User user){
System.out.println(\"user delete...\"+user);
return \"{\'module\':\'user update\'}\";
}
//@RequestMapping(value = \"/{id}\",method = RequestMethod.GET)
@GetMapping(\"/{id}\")
public String getById(@PathVariable Integer id){
System.out.println(\"springboot is running3...\");
return \"springboot is running3...\";
}
}
来源:https://www.cnblogs.com/hp-cn/p/16139870.html
本站部分图文来源于网络,如有侵权请联系删除。