当前位置: 首页 > news >正文

@RequestParam @PathVirable @RequestBody @ApiParam的区别

@RequestParam 

  • 最常用
  • 用value指定参数名字,required字段指定参数是否必须,默认为true,当required=false时,一般配合着defaultValue="xx"使用
  • 对应的url是这样的:
    https://localhost/requestParam/test?key1=value1&key2=value2
 @RequestMapping("/getXxx")@ResponseBodypublic String getXxx(HttpServletRequest request,@RequestParam(value="compareId", required = false)String compareId,@RequestParam(value="networkType", required = false)String networkType,@RequestParam(value="simulateDate", required = false)String simulateDate,@RequestParam(value="productType", required = false)String productType,@RequestParam("pageNum")int pageNum, @RequestParam("pageSize")int pageSize){}

@PathVirable

  • url是RestFul风格时,就无法用@RequestParam了,就用这个
  • 对应的url是这个样子的
    https://localhost/pathVariable/test/value1/value2
  • 用value指定参数名字,required字段指定参数是否必须,默认为true
@RequestMapping("/pathVariable/test/{param}")@ResponseBodypublic String pathVariableTest(@PathVariable(value = "param",required = false)String param){return "pathVariable接受到的参数:" + param;}

@RequestBody

  • 使用@RequestBody注解表示请求参数来自于请求体, 前台请求参数需以JSON格式传递
  • 对应的url
  • @RequestParam注解用于从前端传递过来的请求参数中获取单个或多个参数,一般用于GET请求,表示前端向后端索要数据。而@RequestBody注解则是从请求体中获取数据,一般用于POST请求,表示前端给后端提供数据
  • @RequestBody注解接受到的JSON实体直接被转为java对象
 @PostMapping("/realTimeExport")@Operation(summary = "实时查询车辆信息导出")public MessageBean<String> realTimeExport(@RequestBody CarInfoRealTimeQueryParamDTO carInfoRealTimeQueryParamDTO) {String export = carInfoService.export(2,null,carInfoRealTimeQueryParamDTO);return MessageBean.success(export);}

@ApiParam

使用swagger的时候才用得到这个注解,相当于swagger版本的@RequstParam

    @RequestMapping(value="uploadFile",consumes = "multipart/*",headers = "content-type=multipart/form-data",method = RequestMethod.POST)@ResponseBodypublic DataResult uploadFile(@ApiParam(value = "上传文件",required = true) MultipartFile file, String resumeID,HttpServletRequest request)throws IOException{}}

@Parameter

这是swagger3提供的注解,基本上没人用。也是swagger版本的@RequstParam

http://www.lryc.cn/news/457968.html

相关文章:

  • Vulnhub靶场案例渗透[5]- DC4
  • http协议概述与状态码
  • Golang 进阶5—— 反射
  • react 封装防抖
  • Java项目-----图形验证码登陆实现
  • 【网络代理模块】反向代理(上)
  • 2-112基于matlab的协同干扰功率分配模型
  • 数据结构之——二叉树
  • 多层感知机(MLP)实现考勤预测二分类任务(sklearn)
  • 文件与目录的基本操作
  • Python入门笔记(三)
  • PostgreSQL 任意命令执行漏洞(CVE-2019-9193)
  • 使用tgz包下载安装clickhouse低版本
  • 外包功能测试干了6个月,技术退步太明显了。。。。。
  • 动态规划和贪心算法
  • python爬虫--tx动漫完整信息抓取
  • 《使用Java做爬虫和使用python做爬虫哪个好》
  • 如果我想开发一个APP,需要准备哪些材料呢
  • 告别论文初稿焦虑!ChatGPT让你轻松完成写作!
  • mongodb 数据迁移,亲测成功!
  • 如何使用ssm实现疫情居家办公OA系统
  • 深入了解 MySQL 中的 JSON_CONTAINS
  • 宝藏推荐:精选十款知识库搭建软件
  • go语言接口设计三国人物
  • day-63 优质数对的总数 II
  • 基于 Prometheus+Grafana+Alertmanager 搭建 K8S 云监控告警平台(附配置告警至QQ、钉钉)
  • C++ | Leetcode C++题解之第461题汉明距离
  • ElasticSearch备考 -- Update by query Reindex
  • 从认识String类,到走进String类的世界
  • Vue入门-指令修饰符-@keyup.enter