问题描述
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
带弹簧靴
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
在这种情况下,在 swagger-ui 上我只看到没有模型的文件上传:
我在邮递员那里试过这个案例,效果很好
解决方法
问题出在 Docket Bean 中的配置类中。 在这里,我定义了到我的控制器的路由,以从 swagger-ui 中排除其他人。 问题出在 DocumentationType,OpenApi3.0 正在维护多类型文件上传,而 Swagger2 没有。
我面临的下一个问题是:
415 不支持的媒体类型
分辨率:
第一种方式: 如果您将使用 postman/javaScript 框架 -> 您必须定义每个 RequestPart 的媒体类型(实际上不需要文件,文件会自动设置)。 邮递员中的示例:
第二种方式:是实现octet-stream的维护,因为如果请求部分没有content-type头,spring默认在AbstractMessageConverterMethodArgumentResolver.class
中设置它。
(我正在使用 spring-boot-starter-parent 2.4.1 -> spring-webmvc 5.3.2
)
所以这是我发现的 2 个案例(将响应 JSON 映射到 DTO):
2 种情况:
定义新的 Converter 类,它肯定适用于所需的类(在我的情况下是 MDVersionDTO.class
),并且肯定会像 octet-stream 那样来实现它,override canRead()
方法。