Swagger2 使用

大家好 , 我是苏麟 , 今天带来Swagger的使用 . 

官方文档 :  招摇文档 (swagger.io)

Swagger2 使用_第1张图片

访问地址 : 在路径后加上doc.html   例如: http://localhost:8000/doc.html

Swagger2 使用_第2张图片

Swagger 使用

依赖


        
        
            io.springfox
            springfox-swagger2
            2.9.2
        

        
        
            io.springfox
            springfox-swagger-ui
            2.9.2
        

        
        
            com.github.xiaoymin
            swagger-bootstrap-ui
            1.9.6
        

配置

server:
  port: 8000
  servlet:
    context-path: /api
    
    
#如果使用SpringBoot 2.6以上版本,需要在application.properties加入
##解决springboot2.6.2使用swagger的问题    
spring:
  mvc:
    path match:
      matching-strategy: ant_path_matcher

在启动类上加入注解

@EnableSwagger2
@EnableSwaggerBootstrapUI
@SpringBootApplication
public class SwaggerApplication {

    public static void main(String[] args) {
        SpringApplication.run(SwaggerApplication.class, args);
    }

}

准备一个Swagge配置类

/**
 * Profile("dev") 设置Swagger 在那个环境生效
 */
@Profile("dev")
@Configuration
public class SwaggerConfigSetting {

    @Bean
    public Docket docket() {
        //创建Docket对象
        Docket docket = new Docket(DocumentationType.SWAGGER_2);

        //创建Api信息,接口文档的总体信息
        ApiInfo apiInfo = new ApiInfoBuilder()
                //标题
                .title("苏麟项目")
                //版本号
                .version("1.0")
                //描述
                .description("前后端分离项目")
                //联系人
                .contact(new Contact("苏麟团队", "htttp://sulin.com", "qq.com"))
                //协议
                .license("2.0")
                .build();

        //设置使用
        docket = docket.apiInfo(apiInfo);

        //设置文档参与生成的包
        docket.select().apis(RequestHandlerSelectors.basePackage("com.sl.controller")).build();

        return docket;
    }
}

参与文档的类

@Api(tags = "用户功能列表")
@RestController
public class MyController {

    @ApiOperation(value = "swagger简单使用", notes = "第一个Swagger操作")
    @GetMapping("/hello")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "name", value = "用户姓名", required = true, dataType = "String", paramType = "query")
    })
    @ApiResponses({
            @ApiResponse(code = 200,message = "访问成功")
    })
    public Student swaggerVoid(String name, Integer age) {
        Student student = new Student(name, age);
        return student;
    }
}
@Data
@AllArgsConstructor
@ApiModel(value = "学生类")
public class Student {
    @ApiModelProperty(value = "学生姓名")
    private String name;
    @ApiModelProperty(value = "学生年龄")
    private Integer age;
}

knife4j集成版本

 访问地址 : 在路径后加上doc.html   例如: http://localhost:8000/doc.html

Swagger2 使用_第3张图片

引入依赖


        
            com.github.xiaoymin
            knife4j-spring-boot-starter
            3.0.2
        

配置

@Slf4j
@Configuration
public class WebSupperConfig extends WebMvcConfigurationSupport {
    
    /**
     * 设置静态资源映射
     * @param registry
     */
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        log.info("开始进行静态资源映射...");
        registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }

    @Bean
    public Docket getDocket() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.sl.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("苏麟")
                .version("1.0")
                .description("苏麟接口文档")
                .build();
    }

}

在启动类上加注解

@EnableSwagger2
@EnableKnife4j
@SpringBootApplication
public class SwaggerApplication {

    public static void main(String[] args) {
        SpringApplication.run(SwaggerApplication.class, args);
    }

}

这期就到这里 下期见!

拜拜!

你可能感兴趣的:(java项目中高效开发,java)