Skip to content

Commit a7dc739

Browse files
committed
client plugin webflux添加接口
1 parent 8db9fc9 commit a7dc739

File tree

2 files changed

+68
-1
lines changed

2 files changed

+68
-1
lines changed

spring-cloud-gray-plugins/spring-cloud-gray-plugin-webflux/src/main/java/cn/springcloud/gray/web/configuration/GrayClientWebAutoConfiguration.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import cn.springcloud.gray.GrayManager;
55
import cn.springcloud.gray.client.config.GrayClientAutoConfiguration;
66
import cn.springcloud.gray.web.resources.DiscoveryInstanceResource;
7+
import cn.springcloud.gray.web.resources.GrayListResource;
78
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
89
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
910
import org.springframework.context.annotation.Bean;
@@ -15,8 +16,14 @@
1516
public class GrayClientWebAutoConfiguration {
1617

1718
@Bean
18-
public DiscoveryInstanceResource discoveryInstanceResource(){
19+
public DiscoveryInstanceResource discoveryInstanceResource() {
1920
return new DiscoveryInstanceResource();
2021
}
2122

23+
24+
@Bean
25+
public GrayListResource grayListResource() {
26+
return new GrayListResource();
27+
}
28+
2229
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package cn.springcloud.gray.web.resources;
2+
3+
import cn.springcloud.gray.GrayManager;
4+
import cn.springcloud.gray.api.ApiRes;
5+
import cn.springcloud.gray.model.GrayInstance;
6+
import cn.springcloud.gray.model.GrayTrackDefinition;
7+
import cn.springcloud.gray.request.track.GrayTrackHolder;
8+
import org.springframework.beans.factory.annotation.Autowired;
9+
import org.springframework.web.bind.annotation.GetMapping;
10+
import org.springframework.web.bind.annotation.RequestMapping;
11+
import org.springframework.web.bind.annotation.RestController;
12+
import reactor.core.publisher.Mono;
13+
14+
import java.util.Collection;
15+
import java.util.Map;
16+
17+
/**
18+
* @author saleson
19+
* @date 2019-11-24 12:12
20+
*/
21+
@RestController
22+
@RequestMapping("/gray/list")
23+
public class GrayListResource {
24+
25+
26+
@Autowired
27+
private GrayTrackHolder grayTrackHolder;
28+
29+
30+
@Autowired
31+
private GrayManager grayManager;
32+
33+
/**
34+
* 返回实例中维护的所有灰度服务及实例信息
35+
*
36+
* @return
37+
*/
38+
@GetMapping("/service/allInfos")
39+
public Mono<ApiRes<Map<String, Collection<GrayInstance>>>> getAllGrayServiceInfos() {
40+
return Mono.just(
41+
ApiRes.<Map<String, Collection<GrayInstance>>>builder()
42+
.code(ApiRes.CODE_SUCCESS)
43+
.data(grayManager.getMapByAllGrayServices())
44+
.build());
45+
}
46+
47+
/**
48+
* 返回维护的所有灰度追踪信息
49+
*
50+
* @return
51+
*/
52+
@GetMapping("/track/allDefinitions")
53+
public Mono<ApiRes<Collection<GrayTrackDefinition>>> getAllGrayTracks() {
54+
return Mono.just(
55+
ApiRes.<Collection<GrayTrackDefinition>>builder()
56+
.code(ApiRes.CODE_SUCCESS)
57+
.data(grayTrackHolder.getTrackDefinitions())
58+
.build());
59+
}
60+
}

0 commit comments

Comments
 (0)