介面開發文件swagger
阿新 • • 發佈:2021-10-11
依賴
<!-- swagger2 依賴 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <!-- Swagger第三方ui依賴 --> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version>1.9.6</version> </dependency>
工具類
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; importspringfox.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.ArrayList;import java.util.List; /** * Swagger2配置 * * @author zhoubin * @since 1.0.0 */ @Configuration @EnableSwagger2 public class Swagger2Config { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.his.base.org.controller")) .paths(PathSelectors.any()) .build() //新增登入認證 .securityContexts(securityContexts()) .securitySchemes(securitySchemes()); } private List<SecurityContext> securityContexts() { //設定需要登入認證的路徑 List<SecurityContext> result=new ArrayList<>(); result.add(getContextByPath("/hello/.*")); return result; } private SecurityContext getContextByPath(String pathRegex) { return SecurityContext.builder() .securityReferences(defaultAuth()) .forPaths(PathSelectors.regex(pathRegex)).build(); } private List<SecurityReference> defaultAuth() { List<SecurityReference> result = new ArrayList<>(); AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; authorizationScopes[0] = authorizationScope; result.add(new SecurityReference("Authorization",authorizationScopes)); return result; } private ApiInfo apiInfo() { //設定文件資訊 return new ApiInfoBuilder() .title("雲E辦介面文件") .description("雲E辦介面文件") .contact(new Contact("xxxx", "http:192.168.1.187:9705/doc.html", "[email protected]")) .version("1.0") .build(); } private List<ApiKey> securitySchemes(){ //設定請求頭資訊 List<ApiKey> result = new ArrayList<>(); ApiKey apiKey = new ApiKey("Authorization","Authorization","header"); result.add(apiKey); return result; } }