Java (3): 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 SwaggerConfigclase

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

Insertar descripción de la imagen aquí

solución:application.yml

spring:
  mvc:
    path match:
      matching-strategy: ant-path-matcher

ejecutar accesohttp://127.0.0.1:8000/swagger-ui.html

Insertar descripción de la imagen aquí

Pruebe Swaggersi la interfaz de solicitud de página está disponible

Al acceder a la interfaz de carga, aparecerá el siguiente mensaje de error

Error 1:

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

/**
 * 单/多文件上传 (新增/编辑)
 *
 * @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

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

/**
 * 单/多文件上传 (新增/编辑)
 *
 * @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 Swaggerno 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 eliminarlo allowMultiple = true. Se recomienda utilizar Postmanotro 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]));
        }
    }
}

Ejecutar pruebas

Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_43526371/article/details/131242719
Recomendado
Clasificación