如何解决是否可以在 Swagger 中使用模型上传 MultipartFile? 在评论 415 Unsupported Media Type Resolved 中
<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()
方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。