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<InstancesChangeEvent>
|
//{
|
// @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<AbstractSwaggerUiConfigProperties.SwaggerUrl> 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<? extends Event> subscribeType()
|
// {
|
// return InstancesChangeEvent.class;
|
// }
|
}
|