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


感谢阅读,祝君暴富!

相关推荐
EXI-小洲5 小时前
Java 操作 Word:字符串替换、图片插入、动态生成表格与API接口下载
java·开发语言·spring boot·word
2601_961901706 小时前
SpringBoot使用Nacos进行application.yml配置管理
java·spring boot·spring
何以解忧,唯有..7 小时前
LangChain 工具调用(Tool Calling)实战指南
java·前端·langchain
QQ_21696290967 小时前
【源码编号:project79475】SpringBoot校内二手交易平台:商品发布、分类检索、留言交流、订单管理全流程实战
java·spring boot·后端
前端 贾公子8 小时前
第09章:上下文与记忆 (2)
java·服务器·前端
2601_962203518 小时前
Java进阶07集合(续)
java·开发语言
郑州光合科技余经理9 小时前
本地生活服务系统:模块边界与结算字段怎么拆
java·开发语言·前端·后端·系统架构·uni-app·php
roman_日积跬步-终至千里9 小时前
【数据治理(6)】DataOps 不是调度工具,而是让数据产品长期可信的运行机制
java·服务器·网络
落魄大学生之流水线上谋生计9 小时前
LangGraph 基本用法指南
java·windows·python·langchain
2601_9621284110 小时前
SpringBoot篇(缓存层)
java·spring boot·缓存