• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

SpringBoot——RESTful风格以和极快发送不同方式的请求

武飞扬头像
Error_exception_worn
帮助1

RESTful风格:

简单来说,RESTful就是一种将请求方式融合到路径中的一种请求路径书写风格,注意这里是风格,不是规定,我们也可以不使用他或者不是非常严格的按照他规定的样式来写,但是由于行业中大多数的人在编程的时候都按照这种方式进行书写,所以就变成了一种约定俗成的事情。

首先我们先来讲RESTful风格的特点,然后再来讲如何将我们之前的请求方式变成RESTful风格。RUST风格有一个最明显的特点就是将参数放在请求路径中,我们可以将之前的请求方式与RESTful风格进行对比就非常的明显了:

  1.  
    ### 传统风格
  2.  
    PUT http://localhost:8080/users?id=1
  3.  
     
  4.  
    ### RUST风格
  5.  
    PUT http://localhost:8080/users/1

在之前,我们的路径和参数之间使用问号”?“分隔,并且使用“参数名=参数值”的方式,那么RESTful风格就是将参数当作路径的一部分,参数和路径之间依然是使用斜杠作为连接符。

那么介绍完了请求路径,那么如何去访问并获取里面的数据呢?方法也非常的简单,大体分为以下几个步骤:

1、在浏览器发送请求:

首先我需要构建出一个controller:

  1.  
    package com.springBoot.controller;
  2.  
     
  3.  
    import org.springframework.web.bind.annotation.GetMapping;
  4.  
    import org.springframework.web.bind.annotation.RequestMapping;
  5.  
    import org.springframework.web.bind.annotation.RestController;
  6.  
     
  7.  
    @RestController
  8.  
    @RequestMapping("/books")
  9.  
    public class bookController {
  10.  
    @GetMapping
  11.  
    public String doManin(){
  12.  
    System.out.println("请求成功!");
  13.  
    return "index";
  14.  
    }
  15.  
    }
学新通

这里介绍一下在编写RESTful风格的请求的时候,我们的Controller其实也是有一套自己的编写的规范的,比如我们在使用注解的时候要修改成@RestController,这其实是两个注解的结合,是@ResponseBody和@controller的结合,我们点进去这个注解也可以发现:

学新通

他里面其实就是运用了这两个注解来完成这个效果,是什么意思呢,就需要我们回忆一下我们之前在学习Spring的时候的响应相关的知识,@ResponseBody表示所有的返回值都是以字符串的方式进行相应的,也就是当我们把这个注解应用在类上的时候,这个类中的所有的方法都会带上@ResponseBody注解,返回值也都是直接以字符串的形式出现在页面上。

2、在浏览器访问我们的路径:

这个路径是写在类上的,所以我们访问的时候要直接访问类上的@RequestMapping中的值,这里我的值是/books:

学新通

学新通  

首先是在页面上看到了我们的返回值,其次在控制台看到了我们的输出语句,这就表示请求正常。

3、获取数据:

RESTful风格的参数是写在路径里的,那么我们要如何去获取这个参数呢?首先我们要在方法的请求路径映射中定义参数的占位符,也就是在参数在请求路径的位置:

比如此时如果我要传递一个参数,那么完整的路径就是:

http://localhost:8080/users/参数

也就是说参数是在我的路径的最后一位,那么我在获取的时候,控制器的方法的请求映射就可以这么写:

学新通

我是用一个占位符,这个占位符的格式就是一对花括号,中间使用一个变量去占位,代替我要传递的参数,如何获取,按照之前我们的经验,沃恩要在形参中添加变量,注意这个变量的名字要和我们的占位符相同

学新通

设定了形参,还没有完成,还需要使用一个注解去指明我的参数是来自于请求路径,这个注解叫做:@PathVariable

学新通

这样一个接受请求参数的Controller就完成了,我们在方法输出我们重启服务器,并发送一个带有参数的请求,并且我们在Controller中将我们输入的参数输出到页面中,并且打印在控制台上:

学新通

学新通

那么现在,我们就看到了参数已经传递进来了,并且我们也获取到了。

RESTful的编码规范: 

之前我们说过,RESTful除了在请求路径中有不同的规范之外,还有一个重要的特点就是,我们在名明明请求路径的时候不写名词,比如find,delete,update这种一看就知道是什么操作的词语,我们直接用名字,描述操作的对象,比如findUserById这是明显的我们传统方式的请求路径,RESTful直接就是users,注意要加s表示复数操作,那么我们怎么知道或者如何区分这具体是什么操作呢?通过不同的请求方式:

  1.  
    package com.springBoot.controller;
  2.  
     
  3.  
    import org.springframework.web.bind.annotation.*;
  4.  
     
  5.  
    @RestController
  6.  
    @RequestMapping("/users")
  7.  
    public class userController {
  8.  
    @GetMapping
  9.  
    public String selectById(){
  10.  
    System.out.println("select By Id ……");
  11.  
    return "index";
  12.  
    }
  13.  
    @PostMapping
  14.  
    public String selectAll(){
  15.  
    System.out.println("select All");
  16.  
    return "index";
  17.  
    }
  18.  
    @DeleteMapping
  19.  
    public String delete(){
  20.  
    System.out.println("DELETE");
  21.  
    return "index";
  22.  
    }
  23.  
    @PutMapping
  24.  
    public String update(){
  25.  
    System.out.println("UPDATE");
  26.  
    return "index";
  27.  
    }
  28.  
    }
学新通

这是一个比较标准的RESTful风格的编码方式,他将请求路径写在类上,根据不同的请求方式调用不同的方法,而不同的方法去做不同的操作,其中我们主要会用到四种方法:

GET:查询操作

DELETE:删除操作

PUST:保存

PUT:修改

常用的四种请求方式对应四种不同的操作,而路径都是统一的。

快速发送不同方式的请求:使用PostMan

PostMan是一款可以快速发送不同请求方式的请求的工具,他的界面是这样的:

学新通

上面是请求的方式和路径,右边蓝色的是发送请求的按钮,下面就是请求结果,我们就来发送不同的请求方式:

学新通 学新通

学新通

使用postman可以快速发送不同的请求,当然如果你喜欢在IDEA里面就完成各种操作,那么IDEA里面也是可以完成对请求的模拟的:

 快速发送不同方式的请求:使用IDEA:

1、创建一个请求文件:

学新通

 在这里IDEA支持直接创建一个请求文件:

学新通

这个文件的编写格式是前面写请求方式,大写小写都可以,好像是推荐使用大写,然后后面跟上请求路径。

学新通

多个请求之间用三个井号分开,不然他会认为这是一个请求,然后就可以点击前面的绿色三角符号发送请求:

学新通

从上到下依次是请求头,请求体以及请求的状态码。

还有很多的工具可以使用,按照个人习惯进行选择即可。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgbhhbc
系列文章
更多 icon
同类精品
更多 icon
继续加载