我将 springfox swagger-ui 与 Springboot 结合使用,但未启用分段上传的 fileUpload 按钮。我尝试升级到 springfox-swagger-ui 3.0.0,但这甚至没有打开 swagger-ui 页面。有什么办法可以获取文件上传按钮吗?
我的 API 调用如下所示:
@RequestMapping(value = "/foo", method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<ByteArrayResource> method(@RequestParam("file") MultipartFile file, @RequestParam("id") String id) {
....
}
Current issue with springfox-swagger-ui 2.10.5
My pom.xml is :
<properties>
<java.version>1.8</java.version>
<io.springfox.version>3.0.0</io.springfox.version>
</properties>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${io.springfox.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.10.5</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-data-rest</artifactId>
<version>${io.springfox.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>${io.springfox.version}</version>
</dependency>
From: http://springfox.github.io/springfox/docs/current/#migration-from-existing-2-x-version http://springfox.github.io/springfox/docs/current/#migrating-from-existing-2-x-version
有一些事情需要做:
1. 将 springfox-boot-starter 添加到 POM ,从 POM 中删除旧的依赖项: springfox-swagger2 和 springfox-swagger-ui
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
2.去掉@EnableSwagger2注解
@Configuration
// remove @EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2).select()
.apis(RequestHandlerSelectors.basePackage(UserManagementImpl.class.getPackage().getName()))
.paths(PathSelectors.any()).build();
}
}
3.根据请求使用@RequestPart("files")
@ApiOperation(value = "files", notes = "upload user emails from CSV and email content from json and send out")
@PostMapping(path = "/users/uploadUserEmailsAndSend", consumes = { "multipart/form-data" })
@ResponseBody
ResponseEntity<UploadUsersResDTO> uploadUserEmailsAndSend(@RequestPart("files") MultipartFile[] filesUpload){
CSVParser csvParser = null;
BufferedReader fileEmailsReader = null;
BufferedReader fileEmailMessageReader = null;
MultipartFile fileCSV = null;
MultipartFile fileJson = null;
try {
if (filesUpload[0].getOriginalFilename().toLowerCase().endsWith("csv")) {
fileCSV = filesUpload[0];
fileJson = filesUpload[1];
} else {
fileCSV = filesUpload[1];
fileJson = filesUpload[0];
}
// more codes ....
}
4.访问swagger:http://localhost:8080/swagger-ui/
5. 最后:您应该转向 OpenAPI (https://springdoc.org/ https://springdoc.org/)
OpenAPI 在 swagger 上是顶级的,所以如果你使用 Spring boot,OpenAPI 配置比 Springfox 简单得多。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)