SpringBoot usa Swagger2

1. Introduce la dependencia de la arrogancia

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

2. Agregue la clase de configuración swagger

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.service.ApiInfo;
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)
                .apiInfo(apiInfo())
                .select()
                
                //swagger文档扫描的包,这里扫描的是全部
                //如果扫描指定包下的可以这样写
                //.apis(RequestHandlerSelectors.basePackage("com.xxx.yyy.controller"))
        		.apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo(){
    
    
        return new ApiInfoBuilder()
                .title("标题")
                .description("描述")
                .version("版本")
                .termsOfServiceUrl("公司网址")
                .build();
    }

}

3. Controlador de prueba

@RestController
@RequestMapping("/test")
public class TestController {
    
    

    @GetMapping("/test01")
    public String test01(){
    
    
        return "test01";
    }

    @GetMapping("/test02")
    public String test02(){
    
    
        return "test02";
    }

    @GetMapping("/test03")
    public String test03(){
    
    
        return "test03";
    }

}

4. prueba

Después de que el proyecto se inicia normalmente, el navegador ingresa la URL
http://localhost:8100/swagger-ui.html#/
(el puerto aquí completa el puerto de su propio servicio, el mío es 8100 y el puerto predeterminado es 8080)
inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
Resultados de la prueba
inserte la descripción de la imagen aquí

5. Anotación de arrogancia

Lo anterior es el uso básico de swagger
, pero swagger también proporciona algunas anotaciones, aquí hay algunas anotaciones comunes

anotación API

       Recurso de documentación utilizado para marcar la clase actual como Swagger. Contiene varios atributos de uso común, que se describen a continuación.

• valor: define el nombre del documento de interfaz actual.
• descripción: se utiliza para definir la descripción del documento de interfaz actual.

@Api(value = "controller接口",description = "用户测试接口")
public class TestController {
    
    

inserte la descripción de la imagen aquí

Anotación ApiOperationApiOperation anotación

       @ApiOperation se usa en el método de la interfaz, principalmente para anotar la interfaz de solicitud. Contiene varios atributos de uso común, que se describen a continuación.

• valor: una breve descripción de la API.
• nota: descripción detallada de la API.
• oculto: si el valor es verdadero, se ocultará en el documento.

manifestación

    @GetMapping("/test01")
    @ApiOperation(value = "测试方法01",notes = "细节的描述,细节的测试",hidden = false)
    public String test01(){
    
    
        return "test01";
    }

inserte la descripción de la imagen aquí

ApiImplicitParam, ApiImplicitParams anotaciones

       Utilizado en el método de solicitud de API, un subconjunto de @ApiImplicitParams es la anotación @ApiImplicitParam, donde @ApiImplicitParam anota parámetros comunes.

• nombre: El nombre del parámetro.
• valor: valor del parámetro.
• obligatorio: si el valor es verdadero, es un campo obligatorio.
• defaultValue: El valor predeterminado del parámetro.
• dataType: el tipo de datos.

manifestación

    @GetMapping("/test02")
    @ApiImplicitParams(value = {
    
    
            @ApiImplicitParam(name = "name",value = "测试姓名",required = false,defaultValue = "默认姓名李四"),
            @ApiImplicitParam(name = "age",value = "测试年龄",required = false,dataType = "Integer",defaultValue = "200")
    })
    public String test02(String name,Integer age){
    
    
        return "test02  姓名:"+name+"  年龄:"+age;
    }

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

Anotación ApiParam

       ApiParam se utiliza para los parámetros del método, que contiene los siguientes atributos comunes.

• nombre: El nombre del parámetro.
• valor: valor del parámetro.
• obligatorio: si el valor es verdadero, es un campo obligatorio.
• defaultValue: El valor predeterminado del parámetro.
• tipo: el tipo del parámetro.
• oculto: si el valor es verdadero, oculta este parámetro.

Similar a las anotaciones ApiImplicitParam y ApiImplicitParams, no hay más detalles.

ApiResponse, ApiResponses 注解

       Tanto @ApiResponses como @ApiResponse se usan juntos para devolver el código de estado HTTP. El valor de @ApiResponses es una colección de @ApiResponse, y varios @ApiResponse están separados por comas. Entre ellos, los parámetros comunes de @ApiResponse son los siguientes.

• código: código de estado HTTP.
• mensaje: información de estado de HTTP.
• responseHeaders: encabezados de respuesta HTTP.

manifestación

@GetMapping("/test03")
    @ApiResponses(value = {
    
    
            @ApiResponse(code = 200,message = "成功"),
            @ApiResponse(code = 404,message = "异常")
    })
    public String test03(){
    
    
        return "test03";
    }

inserte la descripción de la imagen aquí

Anotación ResponseHeader

       Si necesita configurar el encabezado de respuesta, configure @ResponseHeader en el parámetro responseHeaders de @ApiResponse. @ResponseHeader proporciona los siguientes parámetros.

• nombre: nombre del encabezado de la respuesta.
• descripción: Descripción del encabezado de la respuesta.

ApiModel, ApiModelProperty anotaciones

       Establezca la clase de entidad de la respuesta de la API, utilizada como objeto de retorno de la API. Parámetros comunes de @ApiModel.

• valor: nombre de la clase de entidad.
• descripción: descripción de la clase de entidad.

       Establezca los atributos de la entidad de respuesta de la API, incluidos los parámetros comunes.

• nombre: nombre del atributo.
• valor: valor del atributo.

manifestación

@ApiModel(value = "Student(学生类)",description = "记录学生个人信息")
public class Student {
    
    


    public String name;
    @ApiModelProperty(name = "age",value = "年龄")
    public Integer age;
}

inserte la descripción de la imagen aquí

6. Más

El resumen de este artículo es aproximado.
Para un uso más detallado, consulte el sitio web oficial de Swagger

Sitio web oficial: https://swagger.io/

Documentación oficial: https://swagger.io/docs/

Supongo que te gusta

Origin blog.csdn.net/baiqi123456/article/details/128722765
Recomendado
Clasificación