目录
一、REST风格
REST (Representational State Transfer),一种软件架构风格,表现形式状态转换
传统风格资源描述形式 REST
http: //localhost/user/getById?il=1
http: //localhost/user/saveUser
REST风格描述形式
http://localhost/user/1
http://localhost/user
REST规范:
1.强调HTTP应当以资源为中心,并且规范了资源URI的风格
2.规范了HTTP请求动作的使用,具有对应的语义
特点:
1,REST风格的URL具有比较强的可读性,而且具有描述性
2,资源描述与视图松耦合
3,可以提供开放的API,便于第三方系统集成,提高互操作性
4,如果提供无状态的服务接口,可以提高应用的水平扩展性
5,隐藏资源的访问行为,无法通过地址得知对资源是何种操作,书写简化
按照REST风格访问资源时使用行为动作区分对资源进行了何种操作
根据REST风格对资源进行访问称为RESTful
1、设定http请求动作
//post请求方式
@RequestMapping(value = "/users",method = RequestMethod.POST)
@ResponseBody
public String insert(@RequestBody User user){
System.out.println("添加。。。。");
return "{'zahngsan':'123'}";
}
//update请求方式
@RequestMapping(value = "/users",method = RequestMethod.PUT)
@ResponseBody
public String update(@RequestBody User user){
System.out.println("修改。。。。");
return "{'zahngsan':'123'}";
}
//查询请求方式
@RequestMapping(value = "/users",method = RequestMethod.GET)
@ResponseBody
public String select2(){
System.out.println("查询。。。。");
return "{'zahngsan':'123'}";
}
2、设定请求参数(路径变量)
//查询请求方式
@RequestMapping(value = "/users/{id}",method = RequestMethod.GET)
@ResponseBody
public String select1(@PathVariable Integer id){
System.out.println("查询。。。。");
return "{'zahngsan':'123'}";
}
//delete请求方式
@DeleteMapping("/{id}/{name}")
public String delete(@PathVariable Integer id,@PathVariable String name){
System.out.println("删除。。。。");
return "{'zahngsan':'123'}";
}
传多个参数:注解 @DeleteMapping(“/{id}/{name}”)
参数:@PathVariable Integer id,@PathVariable String name
发送请求方式
注解:
名称 | @RequestMapping |
类型 | 方法注解 |
位置 | SpringMVC控制器方法定义上方 |
作用 | 设置当前控制器方法请求访问路径 |
属性 | value(默认)∶请求访问路径 method: http请求动作,标准动作(GET/POST/PUT/DELETE) |
名称 | @PathVariable |
类型 | 形参注解 |
位置 | SpringMVC控制器方法形参定义前面 |
作用 | 绑定路径参数与处理器方法形参间的关系,要求路径参数名与形参名一一对应 |
RESTful快速开发
@RestController
@RequestMapping("/users")
public class test1 {
//post请求方式
@PostMapping
public String insert(@RequestBody User user){
System.out.println("添加。。。。");
return "{'zahngsan':'123'}";
}
//delete请求方式
@DeleteMapping("/{id}")
public String delete(@PathVariable Integer id){
System.out.println("删除。。。。");
return "{'zahngsan':'123'}";
}
//update请求方式
@PutMapping
public String update(@RequestBody User user){
System.out.println("修改。。。。");
return "{'zahngsan':'123'}";
}
//查询请求方式
@GetMapping("/{id}")
public String select1(@PathVariable Integer id){
System.out.println("查询。。。。");
return "{'zahngsan':'123'}";
}
//查询请求方式
@GetMapping
public String select2(){
System.out.println("查询。。。。");
return "{'zahngsan':'123'}";
}
}
注解
名称 | @RestController |
类型 | 类注解 |
位置 | 基于SpringMVC的RESTful开发控制器类定义上方 |
作用 | 设置当前控制器类为RESTful风格,等同于@Controller与@ResponseBody两个注解组合功能 |
名称 |
@GetMapping,@PostMapping @PutMapping,@DeleteMapping |
类型 | 方法注解 |
位置 | 基于SpringMVC的RESTful开发控制器类定义上方 |
作用 | 设置当前控制器方法请求访问路径与请求动作,每种对应一个请求动作,例如@GetMapping对应GET请求 |
属性 | value(默认):请求访问路径 |
三个注解的区别:@RequestBody @RequestParam @PathVariable
区别
1、@RequestParam用于接收url地址传参或表单传参
2、@RequestBody用于接收json数据
3、@PathVariable用于接收路径参数,使用{参数名称}描述路径参数
应用
1、后期开发中,发送请求参数超过1个时,以json格式为主,@RequestBody应用较广
2、如果发送非json格式数据,选用@RequestParam接收请求参数
3、采用RESTful进行开发,当参数数量较少时,例如1个,可以采用@PathVariable接收请求路径
变量,通常用于传递id值
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/93321.html