Construcción de la interfaz de usuario Swagger
Introducir dependencias
pom.xml
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
Definir SwaggerConfig
clase
com/example/user/config/SwaggerConfig.java
package com.example.user.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.user.controller"))
.paths(PathSelectors.any())
.build()
.apiInfo(new ApiInfoBuilder().title("文件模块接口").version("v1.0").build());
}
}
Error de ejecución
solución:application.yml
spring:
mvc:
path match:
matching-strategy: ant-path-matcher
ejecutar accesohttp://127.0.0.1:8000/swagger-ui.html
Pruebe Swagger
si la interfaz de solicitud de página está disponible
Al acceder a la interfaz de carga, aparecerá el siguiente mensaje de error
Error 1:
/**
* 单/多文件上传 (新增/编辑)
*
* @param id 文件ID
* @param multipartFiles 文件
* @return 文件信息
*/
@PostMapping(value = "/upload", headers = "content-type=multipart/form-data") /* ⚠️注意⚠️ */
public ResponseEntity<Object> upload(String id, @RequestParam("file") MultipartFile[] multipartFiles) throws IOException {
if (null != id && !id.isEmpty() && multipartFiles.length > 0) {
return ResponseEntity.ok(this.fileTableService.upload(id, multipartFiles[0]));
} else {
if (multipartFiles.length > 1) {
return ResponseEntity.ok(this.fileTableService.upload("", multipartFiles));
} else {
return ResponseEntity.ok(this.fileTableService.upload("", multipartFiles[0]));
}
}
}
Error 2
/**
* 单/多文件上传 (新增/编辑)
*
* @param id 文件ID
* @param multipartFiles 文件
* @return 文件信息
*/
@PostMapping(value = "/upload", headers = "content-type=multipart/form-data")
@ApiImplicitParam(required = true, name = "file", dataType = "__file", allowMultiple = true) /* ⚠️注意⚠️ */
public ResponseEntity<Object> upload(String id, @RequestParam("file") MultipartFile[] multipartFiles) throws IOException {
System.out.println(id);
System.out.println(multipartFiles.length);
if (null != id && !id.isEmpty() && multipartFiles.length > 0) {
return ResponseEntity.ok(this.fileTableService.upload(id, multipartFiles[0]));
} else {
if (multipartFiles.length > 1) {
return ResponseEntity.ok(this.fileTableService.upload("", multipartFiles));
} else {
return ResponseEntity.ok(this.fileTableService.upload("", multipartFiles[0]));
}
}
}
error 3
⚠️Nota: El error 3 es el mismo que el error 2. La razón es que
Swagger
no se admiten múltiples parámetros de carga de matrices de archivos, lo que impedirá que la interfaz reciba los archivos pasados, por lo que es necesario eliminarloallowMultiple = true
. Se recomienda utilizarPostman
otro software. para las pruebas.
/**
* 单/多文件上传 (新增/编辑)
*
* @param id 文件ID
* @param multipartFiles 文件
* @return 文件信息
*/
@PostMapping(value = "/upload", headers = "content-type=multipart/form-data")
@ApiImplicitParam(required = true, name = "file", dataType = "__file") /* ⚠️注意⚠️ */
public ResponseEntity<Object> upload(String id, @RequestParam("file") MultipartFile[] multipartFiles) throws IOException {
System.out.println(id);
System.out.println(multipartFiles.length);
if (null != id && !id.isEmpty() && multipartFiles.length > 0) {
return ResponseEntity.ok(this.fileTableService.upload(id, multipartFiles[0]));
} else {
if (multipartFiles.length > 1) {
return ResponseEntity.ok(this.fileTableService.upload("", multipartFiles));
} else {
return ResponseEntity.ok(this.fileTableService.upload("", multipartFiles[0]));
}
}
}