新手向:一文搞懂requestparampathvariablerequestbody(代码片段)

爱叨叨的程序狗 爱叨叨的程序狗     2022-12-14     753

关键词:

@PathVariable@RequestParam一般用于Get请求,分别是从路径里面去获取变量,也就是把路径当做变量,后者是从请求里面获取参数。

RequestBody一般用于Post请求,获取请求Body中的JSON数据

RequestParam

    @ApiOperation(value = "用户测试", notes = "用户测试notes")
    @GetMapping("localDateTime")
    public ResultMessage localDateTimeGet(@RequestParam(value = "localDateTime") LocalDateTime localDateTime) 
        return ResultMessage.success(localDateTime);
    

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bJALkHbB-1627453891960)(https://gitee.com/FirstMrRight/pic-go/raw/master/image-20210728135025114.png]

请求路径:http://localhost:9527/test/localDateTime?localDateTime=1627451273069

RequestParam相当于把参数拼接到URL,多个参数间使用&连接,使用Postman请求时对应的是QueryParams。

如果请求参数不正确时,会报错:

MissingServletRequestParameterException: Required LocalDateTime parameter ‘localDateTime’ is not present。

即没找到请求的该参数,此时需要检查@RequestParam(value = “xxx”)的value值与请求参数名称是否一致。

PathVariable

@RequestMapping("/test")

@ApiOperation(value = "用户测试", notes = "用户测试notes")
@GetMapping("localDateTime")
public ResultMessage localDateTimePath(@PathVariable("localDateTime") LocalDateTime localDateTime) 
    return ResultMessage.success(localDateTime);

请求路径:http://localhost:9527/test/1627451273069

在使用了PathVariable注解的接口中,请求路径中的localDateTime参数相当于一个占位符,补位的参数就是@PathVariable后的值。

RequestBody

@ApiOperation(value = "用户测试", notes = "用户测试notes")
@PostMapping("localDateTime")
public ResultMessage localDateTimePost(@RequestBody LocalDateTimeVO localDateTimeVO) 
    return ResultMessage.success(localDateTimeVO);

请求路径:http://localhost:9527/test/localDateTime

RequestBody修饰的类:

@Data
public class LocalDateTimeVO 
    private LocalDateTime localDateTime;

传递的数据:


  "localDateTime": 1627453417913

官方文档解读RequestBody

Annotation indicating a method parameter should be bound to the body of the web request. The body of the request is passed through an HttpMessageConverter to resolve the method argument depending on the content type of the request. Optionally, automatic validation can be applied by annotating the argument with @Valid.

该注解主要是解析请求体中的数据,映射到后端接收数据的实体类中,即反序列化。

一文搞懂│什么是跨域?如何解决跨域?

查看详情

一文全搞懂postgresql的角色

角色和用户的使用举个例子,创建一个只读用户和两个读写用户通用前提操作REVOKECREATEONSCHEMApublicFROMPUBLIC;REVOKEALLONDATABASEmydatabaseFROMPUBLIC;创建只读角色CREATEROLEreadonly;GRANTCONNECTONDATABASEmydatabaseTOreadonly;GRANTUSAGEONSCHEMAmys 查看详情

一文搞懂==equals和hashcode

...de(),在使用HashMap或HashSet的时候可能会出现什么情况?​一文搞懂​==和equals()的区别是什么?​先来看看 查看详情

一文搞懂python列表list的截取

〝古人学问遗无力,少壮功夫老始成〞一文搞懂python列表list的截取,列表作为python中最常用的数据类型,如果搞懂它,将会对你学习python有特别大的好处,如果这篇文章能给你带来一点帮助,希望给飞兔小哥哥一键三连,表示... 查看详情

一文搞懂springboot启动原理

SpringBoot为我们做的自动配置,确实方便快捷,但一直搞不明白它的内部启动原理,这次就来一步步解开SpringBoot的神秘面纱,让它不再神秘。@SpringBootApplicationpublicclassApplication{publicstaticvoidmain(String[]args){SpringApplication.run(Application.c... 查看详情

一文搞懂http请求报文结构

一文搞懂HTTP请求报文结构请求行(也有说是请求头)请求头部请求报文主要由四部分组成:请求行,请求头部,空行和请求数据请求行(也有说是请求头)是由3个字段组成的,请求方法字段(g... 查看详情

一文搞懂java线程中断

在之前的一文《如何"优雅"地终止一个线程》中详细说明了stop终止线程的坏处及如何优雅地终止线程,那么还有别的可以终止线程的方法吗?答案是肯定的,它就是我们今天要分享的——线程中断。下面的这断代码大家应该再熟... 查看详情

视频知识点(14)-一文搞懂x264编码库

目录前言正文1.下载源码2.windows平台编译3.疑难问题3.1报错:NoworkingCcompilerfound. 查看详情

javaweb一文搞懂response

@[Toc]1Response继承体系response和request一样2Response响应2.1响应行方法名方面类型方法作用setStatus(intsc)void设置响应状态码2.2响应头方法名方法类型方法作用setHeader(Stringname,Stringvalue)void设置响应头键值对2.3响应体方法名方法类型方法作... 查看详情

一文搞懂jsbridge的运行机制

我司的APP是一个典型的混合开发APP,内嵌的都是前端页面,前端页面要做到和原生的效果相似,就避免不了调用一些原生的方法,jsBridge就是js和原生通信的桥梁,本文不讲概念性的东西,而是通过分析一下我司项目中的jsBridge源... 查看详情

视频知识点(15)-一文搞懂openh264编码库

目录前言正文1.下载OpenH264源码2.Windows平台编译环境搭建2.1安装vs20192.2安装windowsSDK 查看详情

一文搞懂web端登录过程(代码片段)

一文搞懂web端登录过程无状态HTTP协议session和cookiecookie(存放在客户的浏览器上)session(存放在服务器端)session和cookie的区别token登录过程token验证在了解登陆过程的原理前,应该先弄清楚几个概念无状态HTTP... 查看详情

一文搞懂阿里云服务器部署mysql并整合springboot

查看详情

一文搞懂javascript垃圾回收机制

一文搞懂JavaScript垃圾回收机制(GC)堆和栈垃圾回收确定内存需要被回收的方法确定内存被回收后,需要用的垃圾回收算法在这之前首先应该搞明白堆和栈的知识堆和栈栈:JavaScript中的基本数据类型都是存在栈中... 查看详情

一文搞懂springboot定时任务

Introduction在springboot中自带了一个轻量级的调度系统。如果我们希望在特定的时间或者以特定的时间间隔完成某些任务,那么它完全能够满足需求,不需要再额外引入像Quartz这种略显沉重的调度框架。下面我们就来介绍springboot中@... 查看详情

一文搞懂canfd总线协议帧格式

...束5、CANFD的改进6、如何从传统的CAN升级到CANFD假期更新了一文搞懂CAN总线协议帧格式,CANFD总线协议怎能错过? 查看详情

一文搞懂canfd总线协议帧格式

...束5、CANFD的改进6、如何从传统的CAN升级到CANFD假期更新了一文搞懂CAN总线协议帧格式,CANFD总线协议怎能错过? 查看详情

一文搞懂java线程中断

下面的这断代码大家应该再熟悉不过了,线程休眠需要捕获或者抛出线程中断异常,也就是你在睡觉的时候突然有个人冲进来把你吵醒了。try{Thread.sleep(3000);}catch(InterruptedExceptione){e.printStackTrace();}此时线程被打断后,代码会继续... 查看详情