package pwc.taxtech.atms; import java.util.ArrayList; import java.util.List; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.ParameterBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.schema.ModelRef; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Parameter; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration @EnableSwagger2 @WebContext public class SwaggerConfig { @Bean public Docket petApi() { return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select() .apis(RequestHandlerSelectors.basePackage("pwc.taxtech.atms.controller")) .paths(PathSelectors.regex("/api/.*")).build() .globalOperationParameters(buildGlobalOperationParameters()); } private List<Parameter> buildGlobalOperationParameters() { ParameterBuilder tokenPar = new ParameterBuilder(); List<Parameter> pars = new ArrayList<Parameter>(); tokenPar.name("Authorization").description("Bearer [JWT token]").modelRef(new ModelRef("string")) .parameterType("header").required(false).build(); pars.add(tokenPar.build()); return pars; } private ApiInfo apiInfo() { return new ApiInfoBuilder().title("ATMS API").description("ATMS API").version("1.0").build(); // .termsOfServiceUrl("http://localhost:8180") } }