SwaggerConfig.java 2.37 KB
Newer Older
liqin's avatar
liqin committed
1 2
package cn.wisenergy.chnmuseum.party.conf;

liqin's avatar
liqin committed
3
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
liqin's avatar
liqin committed
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
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.*;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.service.contexts.SecurityContext;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.List;

import static com.google.common.collect.Lists.newArrayList;

/**
 * 使用Swagger2生成对应的api文档
 */
@Configuration
@EnableSwagger2
liqin's avatar
liqin committed
24
@EnableKnife4j
liqin's avatar
liqin committed
25 26 27
public class SwaggerConfig {

    @Bean
liqin's avatar
liqin committed
28
    public Docket createRestApi() {
liqin's avatar
liqin committed
29
        return new Docket(DocumentationType.SWAGGER_2)
liqin's avatar
liqin committed
30
                .pathMapping("/")
liqin's avatar
liqin committed
31
                .select()
liqin's avatar
liqin committed
32
                .apis(RequestHandlerSelectors.basePackage("cn.wisenergy.chnmuseum.party.web.controller"))
liqin's avatar
liqin committed
33 34
                .paths(PathSelectors.any())
                .build()
35 36
                .securitySchemes(newArrayList(apiKey()))
                .securityContexts(newArrayList(securityContext()))
liqin's avatar
liqin committed
37
                ;
liqin's avatar
liqin committed
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Api Documentation")
                .description("Api Documentation")
                .contact(new Contact("Danny Lee", "http://blog.51cto.com/7308310", "liqinwyyx@163.com"))
                .version("1.0")
                .build();
    }

    private ApiKey apiKey() {
        return new ApiKey("BearerToken", "Authorization", "header");
    }

    private SecurityContext securityContext() {
        return SecurityContext.builder()
                .securityReferences(defaultAuth())
                .forPaths(PathSelectors.regex("/.*"))
                .build();
    }

    List<SecurityReference> defaultAuth() {
        AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
        AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
        authorizationScopes[0] = authorizationScope;
        return newArrayList(new SecurityReference("BearerToken", authorizationScopes));
    }

}