java - swgger ui object参数中的MultipartFile类型无法识别
问题描述
控制器使用对象接收
@ApiOperation(value = "提交打包信息")
@RequestMapping(value = "submit",method = RequestMethod.POST)
public AppPackSubmitAns submit(@Validated AppPackSubmitReq req, HttpServletRequest request){
return packService.submit(req,request);
}
这是接收参数对象
package com.xjm.api.common.req.app;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiParam;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.util.Date;
/**
* Created with IntelliJ IDEA.
*
* @Author: xjm
* @Date: 2021/09/18/14:01
* @Description:
*/
@Setter
@Getter
@ToString
public class AppPackSubmitReq {
/**
*
*/
@NotBlank(message = "名称不能为空")
@ApiParam(value = "app名称",required = true,example = "百度")
private String appName;
/**
*
*/
@NotBlank(message = "网址不能为空")
@ApiParam(value = "app网址",required = true,example = "http://www.baidu.com")
private String url;
/**
*
*/
@NotBlank(message = "版本不能为空")
@ApiParam(value = "app版本需遵循规范否则打包失败",required = true,example = "1.0.0")
private String version;
/**
* 包名
*/
@NotBlank(message = "包名不能为空")
@ApiParam(value = "app包名需遵循规范否则打包失败一般为域名倒叙",required = true,example = "com.baidu.test")
private String packName;
/**
* 倒计时
*/
@NotNull(message = "倒计时不能为空")
@ApiParam(value = "app倒计时/秒",required = true,example = "0")
private Integer countDown;
/**
* 倒计时显示 0关 1开
*/
@NotNull(message = "倒计时显示 0关 1开")
@Range(min = 0,max = 1,message = "倒计时显示 0关 1开")
@ApiParam(value = "倒计时按钮显示 0关 1开",required = true,example = "0")
private Integer countDownShow;
/**
* 类型 ios | android
*/
@NotBlank(message = "类型不能为空")
@ApiParam(value = "类型 ios | android",required = true,example = "android")
private String type;
@ApiParam(value = "app图标 必须png",required = true)
private MultipartFile icon;
@ApiParam(value = "app启动图 必须png")
private MultipartFile startImg;
}
但是 SWgger UI 将 MultipartFile 类型的字段识别为 Queries,应该是 formDate,
我将图标添加到控制器方法以正确识别
@ApiOperation(value = "提交打包信息")
@RequestMapping(value = "submit",method = RequestMethod.POST)
public AppPackSubmitAns submit(@Validated AppPackSubmitReq req,@ApiParam MultipartFile icon1, HttpServletRequest request){
return packService.submit(req,request);
}
有谁知道如何解决我不想向方法添加参数的问题
解决方案
推荐阅读
- javascript - 如何获取对象内数组的第一个元素
- r - 列中年龄数据的百分比
- certificate - 如何检查数字签名令牌是否具有签名和加密功能
- php - 在 Yii2 php 中,如何在不重新加载页面或手动关闭的情况下删除错误闪烁消息?
- flutter - 如何在 Navigator 2.0 中订阅 Route 更改
- typescript - 如何使用另一个对象的成员创建一个新对象,不包括某些接口/类型中的成员?
- python - 使用 Plotly Express 更改线条颜色
- javascript - 根据列值动态更改图标
- ios - 当应用程序在 iOS 中终止时发送一个信号标签
- javascript - Javascript按字段和排序方向对对象数组进行排序