如何在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中参数定义如下:
Key为files

类型选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完成传参


感谢阅读,祝君暴富!

相关推荐
Flynn Liang6 分钟前
Spring AI 2.0 深度解析:ChatClient、Advisor 链与 MCP——Java 工程师的 AI 落地最优解
java·人工智能·spring·大模型·架构设计·spring ai
灿飞12 分钟前
Kotlin与Java虚拟机六:基础与类型系统:一切皆对象,但对象有代价
java·kotlin
计算机毕设定制辅导-无忧学长22 分钟前
《基于微信小程序健康习惯激励系统设计与实现》
java·spring boot·mysql·微信小程序·uniapp·健康习惯激励系统
雪芽蓝域zzs1 小时前
第 1 章:IDEA 创建 SpringBoot3.5.16 Maven 项目
java·maven·intellij-idea
golang学习记1 小时前
IDEA 开始换芯,发布全新AI版终端
java·人工智能·intellij-idea
vipxieliang2 小时前
ValidX 正则表达式预编译优化:Pattern 复用策略
java·spring boot·后端
Wang's Blog2 小时前
Java 项目实战:交友项目 - FastDFS 工作原理
java·大数据·交友
Wang's Blog2 小时前
Java 项目实战:交友项目 - 保存访客记录
java·开发语言·交友
liangbo72 小时前
Spring系列01:IoC 与 DI 到底解决了什么
java·spring
江湖中的阿龙2 小时前
Oracle 紧急安全警报:Java 9.1 分漏洞 CVE-2026-91403,撤销对 eMudhra 风险证书的信任
java·安全·oracle