我有以下控制器结构:
@PostMapping(
value = "/whatever",
consumes = MediaType.MULTIPART_FORM_DATA_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE
)
public ResponseEntity<ResponseDTO> method(@RequestBody RequestDTO dto, @RequestPart MultipartFile file) {
...
}
春季启动版本: 2.3.4.RELEASE
我正在使用招摇:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>3.0.0</version>
</dependency>
尝试并失败:
- 将参数指定为
@RequestBody和@RequestPart时,将两者一起使用时出现错误 415。 - 如果我删除任何输入,请求就会起作用,所以我会停止上传文件或 DTO。
- 如果我同时使用
@RequestPart它们,Swagger 不会显示 DTO json 输入字段。 - 如果
MultipartFile没有用 注释@RequestPart,则不会出现上传按钮。 - 如果两个参数都用 注释
@RequestParam,则上传失败,错误 415
问题: 如何通过 Swagger 上传带有附加 json 信息的文件?