//package com.ruoyi.gateway.config; // //import java.util.ArrayList; //import java.util.List; // //import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.cloud.gateway.config.GatewayProperties; //import org.springframework.cloud.gateway.route.RouteLocator; //import org.springframework.cloud.gateway.support.NameUtils; //import org.springframework.context.annotation.Lazy; //import org.springframework.stereotype.Component; //import org.springframework.web.reactive.config.ResourceHandlerRegistry; //import org.springframework.web.reactive.config.WebFluxConfigurer; //import springfox.documentation.swagger.web.SwaggerResource; //import springfox.documentation.swagger.web.SwaggerResourcesProvider; // ///** // * 聚合系统接口 // * // * @author ruoyi // */ //@Component //public class SwaggerProvider implements SwaggerResourcesProvider, WebFluxConfigurer { // /** // * Swagger2默认的url后缀 // */ // public static final String SWAGGER2URL = "/v2/api-docs"; // // /** // * 网关路由 // */ // @Lazy // @Autowired // private RouteLocator routeLocator; // // @Autowired // private GatewayProperties gatewayProperties; // // /** // * 聚合其他服务接口 // * // * @return // */ // @Override // public List get() { // List resourceList = new ArrayList<>(); // List routes = new ArrayList<>(); // // 获取网关中配置的route // routeLocator.getRoutes().subscribe(route -> routes.add(route.getId())); // gatewayProperties.getRoutes().stream() // .filter(routeDefinition -> routes // .contains(routeDefinition.getId())) // .forEach(routeDefinition -> routeDefinition.getPredicates().stream() // .filter(predicateDefinition -> "Path".equalsIgnoreCase(predicateDefinition.getName())) // .filter(predicateDefinition -> !"ruoyi-auth".equalsIgnoreCase(routeDefinition.getId())) // .forEach(predicateDefinition -> resourceList // .add(swaggerResource(routeDefinition.getId(), predicateDefinition.getArgs() // .get(NameUtils.GENERATED_NAME_PREFIX + "0").replace("/**", SWAGGER2URL))))); // return resourceList; // } // // private SwaggerResource swaggerResource(String name, String location) { // SwaggerResource swaggerResource = new SwaggerResource(); // swaggerResource.setName(name); // swaggerResource.setLocation(location); // swaggerResource.setSwaggerVersion("2.0"); // return swaggerResource; // } // // @Override // public void addResourceHandlers(ResourceHandlerRegistry registry) { // /** swagger-ui 地址 */ // registry.addResourceHandler("/swagger-ui/**", "*/doc.html") // .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/"); // } //}