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

news2024/11/25 0:29:07

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支持直接创建一个请求文件:

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

 

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

 

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

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/519975.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Firefox 112 发布:右键单击显示密码、改进标签管理等!

Firefox 发布 112 版本,为我们带来了显示密码的新选择、同时改进了标签管理等。 Mozilla 于 2023 年 4 月 11 日发布了 Firefox 112,新版本包含一些令人兴奋的新功能和改进。该浏览器的最新版本带来了一些功能以增强用户体验和提高性能。 在 Ubuntu 上运…

UNIAPP实战项目笔记69 订单确认时显示为默认地址

UNIAPP实战项目笔记69 订单确认时显示为默认地址 思路 需要用到vuex 默认显示isDefault为1的地址 案例截图 订单结算页面 地址页面 代码 shopcart.vue <template><view class"shop-cart"><template v-if" list.length > 0 "><!-…

【Linux学习笔记】设备驱动模型详解——总线、设备、驱动和类

学习内容 设备驱动模型视频讲解 简介 设备驱动是计算机系统中的重要组成部分&#xff0c;它们允许操作系统与硬件交互。设备驱动模型是一种通用的抽象框架&#xff0c;用于描述操作系统如何管理硬件设备。这里我们将介绍设备驱动模型中的四个关键概念&#xff1a;总线、设备…

GitLab+Drone CI持续集成自动部署web项目

一、环境介绍 1.gitlab服务器 172.16.11.1 搭建参考&#xff1a;Gitlab教程 2.Drone服务器 172.16.11.2 搭建参考: 基于gitlab搭建Drone CI 3.web服务器 172.16.11.3 已配置好nginx相关web服务&#xff0c;这里nginx配置的web目录为/www/test 还有生成ssh key密钥即可&am…

编程的未来

从 ChatGPT 诞生至今&#xff0c;在程序员的圈子里&#xff0c;我们一直有两种讨论&#xff1a; 最开始所恐慌的&#xff1a;编程没有未来&#xff0c;ChatGPT 是不是要取代程序员。编程的方式前所未有地发生了变化。 现如今&#xff0c;GitHub Copilot Chat 可以让开发者们直…

算法修炼之练气篇——练气十八层

博主&#xff1a;命运之光 专栏&#xff1a;算法修炼之练气篇 前言&#xff1a;每天练习五道题&#xff0c;炼气篇大概会练习200道题左右&#xff0c;题目有C语言网上的题&#xff0c;也有洛谷上面的题&#xff0c;题目简单适合新手入门。&#xff08;代码都是命运之光自己写的…

支付系统设计三:渠道网关设计02-客户端报文解析

文章目录 前言一、后台配置管理1.1 渠道配置1.1.1 渠道基本信息新增1.1.2 渠道交易类型配置1.1.3 渠道商户信息配置1.1.4 账户配置1.1.5 交易类型机构配置 1.2 渠道通讯配置1.2.1 内部渠道通讯1.2.1 外部渠道通讯 1.3 资源配置1.4 证书管理1.5 路由配置 二、运行时逻辑处理1. 控…

Fluent的视角设置

1 背景 针对不同设计方案在同一工况下的差异点进行细节分析&#xff0c;其中一个很重要的要求就是需要在同一视角下比较不同设计方案的差异性。设置视角并进行快速重用是很重要的提高仿真效率的方法。 2 视角设置 视角设置有2类方法&#xff1a;手动拖拉和定量指定。 手动拖拉即…

一图看懂 tomli 模块:一个 TOML解析器、使用 mformat -toc 生成的目录,资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创&#xff0c;转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 tomli 模块&#xff1a;一个 TOML解析器、使用 mformat -toc 生成的目录&#xff0c;资料整理笔记&#xff08;大全&#xff09; &#x1f9ca;摘要&#x1f9ca;模块图&am…

前端开发中,定位bug的几种常用方法

目录 第一章 前言 第二章 解决bug的方法 2.1 百度 2.2 有道翻译 2.3 debugger 2.4 console.log 日志打印 2.5 请求体是否携带参数 2.6 注释页面渲染代码 2.7 其他 第三章 尾声 备注&#xff1a;该文章只是本人在工作/学习中常用的几种方法&#xff0c;如果有不对大家…

智慧园区移动应用发展面临瓶颈,如何解决?

智慧园区移动应用将在多元化服务、生态建设、智能化管理和跨界融合等方面发展&#xff0c;成为园区管理和服务的重要手段之一&#xff0c;为员工和企业提供更加智能化和便捷化的管理和服务。伴随着智慧城市的建设和智慧园区的崛起&#xff0c;智慧园区数字一体化建设成为园区发…

docker搭建nginx负载均衡

一点小背景 docker起了几个服务&#xff0c;没有配置端口映射&#xff0c;导致不能通过网络访问。当然&#xff0c;更简单的方式是加端口映射&#xff0c;笔者的情况更复杂一些&#xff0c;就想到了用nginx映射一下。 Nginx&#xff08;发音同“engine X”&#xff09;是异步框…

避免“文献综抄”,5种写作结构助你完成文献综述→

很多作者可能有过这样的体验&#xff1a;读了很多文献&#xff0c;但在写综述的时候总感觉不像是在写文献综述&#xff0c;更像在写文献总结 如果引用方面不注意&#xff0c;甚至会成为文献综抄。 那么&#xff0c;你可以参考下我们整理的以下资料哦~ 01 文献总结和文献综述的…

DCDC反馈电阻的阻值如何取值?

DCDC芯片的反馈电阻 下图为我们公司现在常用的两款DCDC芯片&#xff0c;TPS54335ADDA/TI和LMR14050SDDA/TI。 其中RFBT和RFBB都是反馈电阻&#xff0c;可以通过调节这两个电阻的比值来输出 预期电压。 FBT&#xff1a;feedback top&a…

保姆级丨XAMPP安装使用

0x00 前言 XAMPP 是一个完全免费&#xff0c;易于安装的 Apache 发行版&#xff0c;包含 MariaDB &#xff0c; PHP 和 Perl 。 XAMPP 开源软件包已经设置为非常容易安装和使用。 0x01 环境说明 Windows 11xampp-windows-x64-8.2.4-0-VS16-installer 0x02 准备工作 首先要访问…

数据库分区;pgAdmin操作pgsql分区;修改pgsql数据库名字

目录 分区 什么是分区 分区的优势 pgAdmin操作pgsql分区 创建父表 创建分区 数据入库分区 扩展&#xff08;按天创建分区脚本&#xff09; 修改数据库名字 链接 分区 什么是分区 指将一个大的表或索引分成多个小的、独立的部分&#xff0c;每个部分称为一个分区&#x…

带你了解家居智能的心脏:物联网关

本文将介绍家庭物联网关的相关内容&#xff0c;将明白物联网关在家庭这个场景当中的应用。现在市面上各种各样的智能家居的家电或者其他设备非常多&#xff0c;那么这就需要一个智能的设备去对所有的家电进行管控。这样一个设备就是家庭智能网关&#xff0c;家庭物联网关是家居…

Py之onnx:onnx/onnxruntime库的简介、安装、使用方法之详细攻略

Py之onnx&#xff1a;onnx/onnxruntime库的简介、安装、使用方法之详细攻略 目录 onnx/onnxruntime库的简介 onnx/onnxruntime库的安装 onnx/onnxruntime库的使用方法 1、基础用法 onnx/onnxruntime库的简介 Open Neural Network Exchange&#xff08;ONNX&#xff09;是一…

Python每日一练(20230513) 粉刷房子 I\II\III Paint House

目录 1. 粉刷房子 Paint House 2. 粉刷房子 II Paint House-ii 3. 粉刷房子 III Paint House-iii &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 leetcode题号分别为&#xff1a; 256、2…

32 位 ARM® Cortex®-M0+ 单片机,PY32F002B 系列微控制器

PY32F002B 系列微控制器采用高性能的 32 位 ARM Cortex-M0内核&#xff0c;宽电压工作范围的 MCU。嵌入24Kbytes Flash 和 3Kbytes SRAM 存储器&#xff0c;最高工作频率 24MHz。包含多种不同封装类型多款产品。 芯片集成I2C、SPI、USART 等通讯外设&#xff0c;1 路 12bit ADC…