SwaggerAPI注解式文档生成,节省你的接口文档书写时间

Spring Boot能够快速开发、便捷部署等特性,Spring Boot会用来构建RESTful API。我们构建RESTful API的目的通常都是由于多终端的原因,这些终端会共用很多底层业务逻辑,因此我们会抽象出这样一层来同时服务于多个移动端或者Web前端

1.添加Swagger2依赖

pom.xml中加入Swagger2的依赖

        
        
            io.springfox
            springfox-swagger2
            2.9.2
        
        
            io.springfox
            springfox-swagger-ui
            2.9.2
        

2.创建Swagger2配置类

@Configuration注解,让Spring来加载该类配置。
@EnableSwagger2注解来启用Swagger2。
apiInfo()用来创建该Api的基本信息(这些基本信息会展现在文档页面中)。
RequestHandlerSelectors.basePackage()中填的是你controller的目录,createRestApi函数创建Docket的Bean之后,apiInfo()用来创建该Api的基本信息(这些基本信息会展现在文档页面中)。select()函数返回一个ApiSelectorBuilder实例用来控制哪些接口暴露给Swagger来展现,采用指定扫描的包路径来定义,Swagger会扫描该包下所有Controller定义的API,并产生文档内容(除了被@ApiIgnore指定的请求)。

@Configuration
@EnableSwagger2
public class swaggerConfig {
    @Bean
    public Docket createRestApi(){
        return new Docket(DocumentationType.SWAGGER_2)
                .pathMapping("/")
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.vio.weaf.controller"))
                .paths(PathSelectors.any())
                .build().apiInfo(new ApiInfoBuilder()
                        .title("WEAF项目整合Swagger")
                        .description("SpringBoot整合Swagger,详细信息......")
                        .version("1.0")
                        .contact(new Contact("啊啊啊啊","blog.csdn.net","[email protected]"))
                        .license("The Apache License")
                        .licenseUrl("http://www.baidu.com")
                        .build());
    }

}

至此完成。访问路径/swagger-ui.html

SwaggerAPI注解式文档生成,节省你的接口文档书写时间_第1张图片

如果添加了安全框架无法直接访问swagger-ui.html,例如SpringSecurity。安全框架会拦截请求,我们需要设置一下放行swagger

@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {


    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers("/index.html", "/static/**", "/login_p", "/favicon.ico"
        ,"/swagger-ui.html","/webjars/**","/swagger-resources/**","/csrf","/v2/**","/error","/");
    }
...............

如果需要继续完善文档完整性,请学习一下基本的swagger注解

如果你想使用token方式校验,需要携带请求头Header

@Configuration
@EnableSwagger2
public class swaggerConfig {
    @Bean
    public Docket createRestApi(){
        //在配置好的配置类中增加此段代码即可
        ParameterBuilder ticketPar = new ParameterBuilder();
        List pars = new ArrayList();
        ticketPar.name("Authorization").description("登录校验")//name表示名称,description表示描述
                .modelRef(new ModelRef("string")).parameterType("header")
                .required(false).defaultValue("Bearer ").build();//required表示是否必填,defaultvalue表示默认值
        pars.add(ticketPar.build());//添加完此处一定要把下边的带***的也加上否则不生效
        return new Docket(DocumentationType.SWAGGER_2)
                .pathMapping("/")
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.reshui.weaf.controller"))
                .paths(PathSelectors.any())
                .build().apiInfo(new ApiInfoBuilder()
                        .title("WEAF项目整合Swagger")
                        .description("SpringBoot整合Swagger,详细信息......")
                        .version("1.0")
                        .contact(new Contact("啊啊啊啊","blog.csdn.net","[email protected]"))
                        .license("The Apache License")
                        .licenseUrl("http://www.baidu.com")
                        .build()).globalOperationParameters(pars);//************把消息头添加;
    }

}

 

你可能感兴趣的:(SpringBoot)