package com.ard.gateway.config; /** * SpringDoc配置类 * * @author ard */ //@Configuration(proxyBeanMethods = false) //@ConditionalOnProperty(value = "springdoc.api-docs.enabled", matchIfMissing = true) public class SpringDocConfig //implements InitializingBean { // @Autowired // private SwaggerUiConfigProperties swaggerUiConfigProperties; // // @Autowired // private DiscoveryClient discoveryClient; // // /** // * 在初始化后调用的方法 // */ // @Override // public void afterPropertiesSet() // { // NotifyCenter.registerSubscriber(new SwaggerDocRegister(swaggerUiConfigProperties, discoveryClient)); // } //} ///** // * Swagger文档注册器 // */ //class SwaggerDocRegister extends Subscriber //{ // @Autowired // private SwaggerUiConfigProperties swaggerUiConfigProperties; // // @Autowired // private DiscoveryClient discoveryClient; // // //private final static String[] EXCLUDE_ROUTES = new String[] { "ard-gateway", "ard-auth", "ard-file", "ard" + // // "-monitor" }; // private final static String[] EXCLUDE_ROUTES = new String[] { "ard-gateway", "ard-monitor" }; // public SwaggerDocRegister(SwaggerUiConfigProperties swaggerUiConfigProperties, DiscoveryClient discoveryClient) // { // this.swaggerUiConfigProperties = swaggerUiConfigProperties; // this.discoveryClient = discoveryClient; // } // // /** // * 事件回调方法,处理InstancesChangeEvent事件 // * @param event 事件对象 // */ // @Override // public void onEvent(InstancesChangeEvent event) // { // Set swaggerUrlSet = discoveryClient.getServices() // .stream() // .flatMap(serviceId -> discoveryClient.getInstances(serviceId).stream()) // .filter(instance -> !StringUtils.equalsAnyIgnoreCase(instance.getServiceId(), EXCLUDE_ROUTES)) // .map(instance -> { // AbstractSwaggerUiConfigProperties.SwaggerUrl swaggerUrl = new AbstractSwaggerUiConfigProperties.SwaggerUrl(); // swaggerUrl.setName(instance.getServiceId()); // swaggerUrl.setUrl(String.format("/%s/v3/api-docs", instance.getServiceId())); // return swaggerUrl; // }) // .collect(Collectors.toSet()); // // swaggerUiConfigProperties.setUrls(swaggerUrlSet); // } // // /** // * 订阅类型方法,返回订阅的事件类型 // * @return 订阅的事件类型 // */ // @Override // public Class subscribeType() // { // return InstancesChangeEvent.class; // } }