REST风格

目录

一、REST风格

1、设定http请求动作

2、设定请求参数(路径变量)


一、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值



 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值