如何在Java接口中定义多种类型的参数(如:同时定义Java对象和文件类型Multipartfile参数等)

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。

文章目录

  • [1. 接口定义](#1. 接口定义)
    • [1.1 文件类型参数定义](#1.1 文件类型参数定义)
    • [1.2 Java对象参数定义](#1.2 Java对象参数定义)
    • [1.3 同时定义Java对象和文件类型的参数](#1.3 同时定义Java对象和文件类型的参数)
  • [2. postman中参数定义](#2. postman中参数定义)
    • [2.1 文件参数填写](#2.1 文件参数填写)
    • [2.2 对象参数填写](#2.2 对象参数填写)
    • [2.3 Postman参数截图](#2.3 Postman参数截图)

1. 接口定义

1.1 文件类型参数定义

使用@RequestParam传文件类型和/或其他查询参数

java 复制代码
    @PostMapping(value = "/createSwTool")
    public void createSwTool(@RequestHeader("username") String username, @RequestHeader("userGroup") String userGroup,
                             @RequestParam("files") MultipartFile multipartFile,
                             @RequestParam("name") String name){

1.2 Java对象参数定义

使用@RequestBody或@RequestPart传Java对象、JSONObject对象等

java 复制代码
    @PostMapping(value = "/createSwTool")
    public void createSwTool(@RequestHeader("username") String username, @RequestHeader("userGroup") String userGroup,
                             @RequestBody TbTtpsSoftwareTools tbTtpsSoftwareTools){

1.3 同时定义Java对象和文件类型的参数

同时定义文件类型和Java对象时,@RequestBody不能与@RequestParam同时使用,此时可用@RequestPart代替@RequestBody

如下:

java 复制代码
    @PostMapping(value = "/createSwTool")
    public void createSwTool(@RequestHeader("username") String username, @RequestHeader("userGroup") String userGroup,
//                             @RequestPart JSONObject jsonObjectInfo,
                             @RequestPart TbTtpsSoftwareTools tbTtpsSoftwareTools,
                             @RequestParam("files") MultipartFile multipartFile){

2. postman中参数定义

postman中选择Body下的form-data来传参

2.1 文件参数填写

代码中文件传参定义如下:

java 复制代码
@RequestParam("files") MultipartFile multipartFile

postman中参数定义如下:
Keyfiles

类型选File

值需选一个本地的文件

2.2 对象参数填写

代码中对象传参如下:

java 复制代码
@RequestPart TbTtpsSoftwareTools tbTtpsSoftwareTools

postman中参数定义如下:
Key为java对象tbTtpsSoftwareTools

类型为默认的Text

值为JSON字符串,内容字段(键)需与对象属性一致,内容如下:

json 复制代码
{
    "toolName":"测试工具3号",
    "toolDescription":"这时一个测试用的脚本工具描述3",
    "toolVersion":"1.0.3",
    "toolApplicableScope":"适用范围为整个EE",
    "toolFeature":"TCU",
    "toolModule":"NESss"
}

Context-Type值为application/json

postman默认是不展示Context-Type,选择右侧Bulk Edit前的三个点,勾选Content-Type展示,现在就可以填写值了

2.3 Postman参数截图

这样就可以在Java接口中同时定义Java对象和文件类型的参数并通过postman完成传参


感谢阅读,祝君暴富!

相关推荐
thefool11226639 分钟前
Java 方法重载
java
这不小天嘛7 小时前
JAVA八股——J集合篇
java·开发语言
什巳10 小时前
JAVA练习278- 和为 K 的子数组
java·学习·算法·leetcode
豆瓣鸡10 小时前
RocketMQ学习-Spring Boot消息实践
java·spring boot·rocketmq
wuqingshun31415910 小时前
说一下mysql的覆盖索引
java
罗超驿11 小时前
2.算法效率的核心密码:时间复杂度和空间复杂度详解
java·数据结构·算法
栈溢出了12 小时前
Redis 分片集群与哈希槽笔记
java·redis·笔记·spring
遨游DATA12 小时前
Spring Boot 启动失败排查:如何区分多 Bean 冲突与清理阶段异常
java·spring boot·后端
wabs66613 小时前
关于单调栈【力扣739.每日温度的思考】
java·开发语言
雪碧聊技术13 小时前
为什么要学函数式编程?
java·函数式编程