123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- package com.redxun.config;
- import com.google.common.base.Predicates;
- 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.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.Arrays;
- import java.util.List;
- /**
- * 文件名: Swagger2Config
- * 作者: Zizg
- * 时间: 2023/01/06
- * 描述: 接口文档配置
- * 修改人:
- * 修改时间:
- * 修改内容:
- */
- @Configuration
- @EnableSwagger2
- public class Swagger2Config {
- @Bean
- public Docket knowledgeApiConfig(){
- return new Docket(DocumentationType.SWAGGER_2)
- .groupName("知识管理系统(里程碑1)")
- .apiInfo(knowledgeApiInfo())
- .select()
- //只显示admin路径下的页面
- .paths(Predicates.and(PathSelectors.regex("/api-knowledge/knowledge/.*")))
- .build()
- .securityContexts(Arrays.asList(securityContexts()))
- .securitySchemes(unifiedAuth());
- }
- @Bean
- public Docket knowledgeTwoApiConfig(){
- return new Docket(DocumentationType.SWAGGER_2)
- .groupName("知识管理系统(里程碑2地图)")
- .apiInfo(knowledgeApiInfo())
- .select()
- //只显示admin路径下的页面
- .paths(Predicates.and(PathSelectors.regex("/api-knowledge/map/.*")))
- .build()
- .securityContexts(Arrays.asList(securityContexts()))
- .securitySchemes(unifiedAuth());
- }
- @Bean
- public Docket knowledgeTwoApiConfig2(){
- return new Docket(DocumentationType.SWAGGER_2)
- .groupName("知识管理系统(里程碑2专辑)")
- .apiInfo(knowledgeApiInfo())
- .select()
- //只显示admin路径下的页面
- .paths(Predicates.and(PathSelectors.regex("/api-knowledge/album/.*")))
- .build()
- .securityContexts(Arrays.asList(securityContexts()))
- .securitySchemes(unifiedAuth());
- }
- @Bean
- public Docket searchApiConfig(){
- return new Docket(DocumentationType.SWAGGER_2)
- .groupName("搜索服务平台")
- .apiInfo(knowledgeApiInfo())
- .select()
- //只显示admin路径下的页面
- .paths(Predicates.and(PathSelectors.regex("/api-knowledge/search/.*")))
- .build()
- .securityContexts(Arrays.asList(securityContexts()))
- .securitySchemes(unifiedAuth());
- }
- private ApiInfo knowledgeApiInfo(){
- return new ApiInfoBuilder()
- .title("知识管理系统-API文档")
- .description("本文档描述了知识管理系统接口定义")
- .version("1.0")
- .contact(new Contact("Zizg", "", ""))
- .build();
- }
- // 添加配置全局token
- private static List<ApiKey> unifiedAuth() {
- List<ApiKey> arrayList = new ArrayList<>();
- arrayList.add(new ApiKey("token", "token", "header"));
- return arrayList;
- }
- private SecurityContext securityContexts() {
- return SecurityContext.builder()
- .securityReferences(defaultAuth())
- .forPaths(PathSelectors.any())
- .build();
- }
- private List<SecurityReference> defaultAuth() {
- AuthorizationScope authorizationScope = new AuthorizationScope("global", "全局token");
- AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
- authorizationScopes[0] = authorizationScope;
- return Arrays.asList(new SecurityReference("token", authorizationScopes));
- }
- }
|