以MultipartFile为RequestPart的POST方法在swagger3 open-api Springboot项目中被视为String

The*_*der 5 java swagger spring-boot openapi swagger-3.0

在使用 Swagger 3 OpenAPI 的 Spring Boot 项目中。

有一个文件POST为 的方法。MultipartRequestPart

理想情况下,swagger-ui它应该要求文件上传,但仅将文件显示为String.

请帮助我上传文件而String不是swagger-ui.

我的RestController

@RestController
public class HelloController {
    @RequestMapping(method = RequestMethod.GET, value = "/api")
    public String sayHello() {
        return "Swagger Hello World";
    }
    @RequestMapping(method = RequestMethod.POST, value = "/fileUpload")
    public String fileUpload(
            @RequestPart(value = "file", required = false ) MultipartFile file,
            @RequestPart(value = "userName", required = false ) String userName
    ) {
        return "added successfully";
    }
}
Run Code Online (Sandbox Code Playgroud)

文件pom.xml

<modelVersion>4.0.0</modelVersion>
<groupId>com.poc</groupId>
<artifactId>springboot-swagger-test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.5.2</version>
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springdoc</groupId>
        <artifactId>springdoc-openapi-ui</artifactId>
        <version>1.6.12</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
    
Run Code Online (Sandbox Code Playgroud)

swagger-ui

Swagger-ui 截图

shr*_*arg 6

consumes= MediaType.MULTIPART_FORM_DATA_VALUE在请求映射中添加:

@RequestMapping(method = RequestMethod.POST, value = "/fileUpload", 
               consumes= MediaType.MULTIPART_FORM_DATA_VALUE)
public String fileUpload(
    @RequestPart(value = "file", required = false ) MultipartFile file,
    @RequestPart(value = "userName", required = false ) String userName
) {
    return "added successfully";
}
Run Code Online (Sandbox Code Playgroud)

输出见下图:

在此输入图像描述