Spring MVC 如何在Sping Boot 应用程序中使用Swagger上传文件

qf9go6mv  于 6个月前  发布在  Spring
关注(0)|答案(1)|浏览(104)

我想在Swagger UI中上传一个文件,控制器方法应该接受一个包含Long和Multipart文件的对象,我应该怎么做?
这是请求对象:

@AllArgsConstructor
@Getter
public class BankFileUploadRequest {

    @NotNull(message = "{validation.bankFileRequestModel.bankAccountId.null}")
    private final Long bankAccountId;
    @NotNull(message = "{validation.bankFileRequestModel.file.null}")
    private final MultipartFile file;

}

字符串
除此之外,我有一个自定义的Spring验证器,它验证BankFileDataRequest,我想有一个控制器方法:

@PostMapping(path = "/", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public void uploadFile(@Validated BankFileUploadRequest request) {
    ...
}


我应该在request参数中添加什么样的注解,以及如何在swagger中支持文件上传?

6gpjuf90

6gpjuf901#

@ModelAttribute添加到参数中解决了这个问题,现在两个Swagger都支持文件上传,并且它可以工作,因此控制器方法的签名是:

@PostMapping(path = "/", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public void uploadFile(@ModelAttribute("request") @Validated BankFileUploadRequest request) {
    ....
}

字符串

相关问题