2

我有以下控制器结构:

    @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 信息的文件?

4

0 回答 0