SwaggerConfig.java 2.44 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
    }

    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")
liqin's avatar
liqin committed
46
                .termsOfServiceUrl("http://111.203.232.175:8088/mall")
liqin's avatar
liqin committed
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
                .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));
    }

}