如何在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完成传参


感谢阅读,祝君暴富!

相关推荐
Code哈哈笑1 分钟前
【Java 学习】初识类和对象、this引用
java·学习·microsoft
forestsea7 分钟前
Spring Boot 与 Java 决策树:构建智能分类系统
java·人工智能·spring boot·深度学习·决策树·机器学习·数据挖掘
hxj..16 分钟前
【设计模式】代理模式
java·设计模式·代理模式·动态代理
zpz200117 分钟前
Jenkins的环境部署
java·运维·jenkins
程序猿小D23 分钟前
第三百三十节 Java网络教程 - Java网络UDP服务器
java·开发语言·网络·网络协议·udp·多线程
极客先躯33 分钟前
高级java每日一道面试题-2024年11月18日-基本篇-Java创建对象有几种方法?
java·new 关键字·使用克隆·使用反序列化·使用工厂模式·使用构建者模式·使用依赖注入
LRcoding34 分钟前
【Spring Boot】# 使用@Scheduled注解无法执行定时任务
java·spring boot·后端
《源码好优多》3 小时前
基于Java Springboot出租车管理网站
java·开发语言·spring boot
·云扬·7 小时前
Java IO 与 BIO、NIO、AIO 详解
java·开发语言·笔记·学习·nio·1024程序员节
求积分不加C7 小时前
Spring Boot中使用AOP和反射机制设计一个的幂等注解(两种持久化模式),简单易懂教程
java·spring boot·后端