您现在的位置是:首页 >技术杂谈 >SpringBoot——RUST风格以及如何快速发送不同方式的请求网站首页技术杂谈

SpringBoot——RUST风格以及如何快速发送不同方式的请求

Error_exception_worn 2024-06-17 10:14:41
简介SpringBoot——RUST风格以及如何快速发送不同方式的请求

RUST风格:

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

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

### 传统风格
PUT http://localhost:8080/users?id=1

### RUST风格
PUT http://localhost:8080/users/1

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

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

1、在浏览器发送请求:

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

package com.springBoot.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/books")
public class bookController {
    @GetMapping
    public String doManin(){
        System.out.println("请求成功!");
        return "index";
    }
}

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

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

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

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

  

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

3、获取数据:

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

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

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

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

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

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

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

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

RUST的编码规范: 

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

package com.springBoot.controller;

import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/users")
public class userController {
    @GetMapping
    public String selectById(){
        System.out.println("select By Id ……");
        return "index";
    }
    @PostMapping
    public String selectAll(){
        System.out.println("select All");
        return "index";
    }
    @DeleteMapping
    public String delete(){
        System.out.println("DELETE");
        return "index";
    }
    @PutMapping
    public String update(){
        System.out.println("UPDATE");
        return "index";
    }
}

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

GET:查询操作

DELETE:删除操作

PUST:保存

PUT:修改

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

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

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

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

 

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

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

1、创建一个请求文件:

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

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

 

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

 

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

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

 

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。