Spring 它是否能够上传带有Swagger模型的多部分文件?(在注释415中,已解析不支持的媒体类型)

Spring 它是否能够上传带有Swagger模型的多部分文件?(在注释415中,已解析不支持的媒体类型),spring,spring-boot,swagger,swagger-ui,springfox,Spring,Spring Boot,Swagger,Swagger Ui,Springfox,我正在使用最后一个(也是唯一一个) 伊奥·斯普林福克斯 springfox启动程序 3.0.0 带弹簧靴 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.1</version> <rel

我正在使用最后一个(也是唯一一个)


伊奥·斯普林福克斯
springfox启动程序
3.0.0
带弹簧靴

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.1</version>
    <relativePath/> <!-- lookup parent from repository -->
 </parent>

org.springframework.boot
spring启动程序父级
2.4.1
我希望能够在一个控制器中上载文件和模型,因此我创建了一个:

在这种情况下,在swagger ui上,我只看到文件上载,没有模型:

我在邮递员那里试过这个案子,效果很好


是虫子吗?或者我应该添加一些其他注释使其工作吗?

问题出在DocketBean中的配置类中。 在这里,我定义了到我的控制器的路由,以将其他控制器排除在swagger ui之外。 问题出在DocumentationType中,OpenApi3.0正在维护多类型文件上传,而Swagger2没有

我面临的下一个问题是:

415不支持的媒体类型

决议:

第一种方式: 如果您将使用postman/javaScript框架->您必须定义每个RequestPart的媒体类型(实际上不需要文件,因为文件将自动设置)。 邮递员的例子:

第二种方式:是对八位字节流的实现维护,因为spring默认在
AbstractMessageConverterMethodArgumentResolver.class
中设置它,前提是请求部分中没有内容类型头。 (我使用的是
springbootstarterparent2.4.1->springwebmvc5.3.2

下面是我发现的两个案例(将响应JSON映射到DTO):

1例(不推荐): 设置对JSON转换器的支持:

2个案例: 定义一个新的转换器类,它将为所需的类(在我的例子中是
MDVersionDTO.class
)工作,并且当它像八位元流一样出现时,要实现它,可以使用ovveride
canRead()
方法。

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.1</version>
    <relativePath/> <!-- lookup parent from repository -->
 </parent>