|
@@ -1,16 +1,20 @@
|
|
|
package cn.reghao.tnb.message.app.soa.service;
|
|
package cn.reghao.tnb.message.app.soa.service;
|
|
|
|
|
|
|
|
import cn.reghao.jutil.jdk.http.WebClient;
|
|
import cn.reghao.jutil.jdk.http.WebClient;
|
|
|
|
|
+import cn.reghao.tnb.message.app.config.AppProperties;
|
|
|
import cn.reghao.tnb.message.app.soa.model.dto.RouteAdd;
|
|
import cn.reghao.tnb.message.app.soa.model.dto.RouteAdd;
|
|
|
import cn.reghao.tnb.message.app.soa.model.dto.RouteDelete;
|
|
import cn.reghao.tnb.message.app.soa.model.dto.RouteDelete;
|
|
|
-import cn.reghao.tnb.message.app.soa.model.route.RouteDefinition;
|
|
|
|
|
import cn.reghao.tnb.message.app.soa.model.vo.RouteDefinitionInfo;
|
|
import cn.reghao.tnb.message.app.soa.model.vo.RouteDefinitionInfo;
|
|
|
import cn.reghao.jutil.jdk.http.WebRequest;
|
|
import cn.reghao.jutil.jdk.http.WebRequest;
|
|
|
import cn.reghao.jutil.jdk.http.WebResponse;
|
|
import cn.reghao.jutil.jdk.http.WebResponse;
|
|
|
import cn.reghao.jutil.jdk.serializer.JsonConverter;
|
|
import cn.reghao.jutil.jdk.serializer.JsonConverter;
|
|
|
|
|
+import com.google.gson.JsonArray;
|
|
|
|
|
+import com.google.gson.JsonElement;
|
|
|
|
|
+import com.google.gson.JsonObject;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Collections;
|
|
import java.util.Collections;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
@@ -23,9 +27,10 @@ import java.util.stream.Collectors;
|
|
|
@Service
|
|
@Service
|
|
|
public class RouteService {
|
|
public class RouteService {
|
|
|
private final WebRequest webRequest;
|
|
private final WebRequest webRequest;
|
|
|
- private final String host = "http://192.168.0.181:16000";
|
|
|
|
|
|
|
+ private final String host;
|
|
|
|
|
|
|
|
- public RouteService() {
|
|
|
|
|
|
|
+ public RouteService(AppProperties appProperties) {
|
|
|
|
|
+ this.host = appProperties.getGatewayAdminUrl();
|
|
|
this.webRequest = new WebClient();
|
|
this.webRequest = new WebClient();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -71,13 +76,28 @@ public class RouteService {
|
|
|
String url = String.format("%s/routes", host);
|
|
String url = String.format("%s/routes", host);
|
|
|
WebResponse webResponse = webRequest.get(url);
|
|
WebResponse webResponse = webRequest.get(url);
|
|
|
String data = getWebResponse(webResponse);
|
|
String data = getWebResponse(webResponse);
|
|
|
|
|
+ List<RouteDefinitionInfo> list = new ArrayList<>();
|
|
|
if (data != null) {
|
|
if (data != null) {
|
|
|
- return JsonConverter.jsonToObjects(data, RouteDefinition.class).stream()
|
|
|
|
|
- .map(RouteDefinitionInfo::new)
|
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
|
|
|
+ JsonArray jsonArray = JsonConverter.jsonToJsonElement(data).getAsJsonArray();
|
|
|
|
|
+ for (JsonElement jsonElement : jsonArray) {
|
|
|
|
|
+ JsonObject jsonObject = jsonElement.getAsJsonObject();
|
|
|
|
|
+ String id = jsonObject.get("id").getAsString();
|
|
|
|
|
+ String uri = jsonObject.get("uri").getAsString();
|
|
|
|
|
+ String path = "";
|
|
|
|
|
+ JsonArray predicates = jsonObject.get("predicates").getAsJsonArray();
|
|
|
|
|
+ for (JsonElement predicate : predicates) {
|
|
|
|
|
+ JsonObject predicateObject = predicate.getAsJsonObject();
|
|
|
|
|
+ String name = predicateObject.get("name").getAsString();
|
|
|
|
|
+ if ("Path".equals(name)) {
|
|
|
|
|
+ JsonObject pathObject = predicateObject.get("args").getAsJsonObject();
|
|
|
|
|
+ path = pathObject.get("_genkey_0").getAsString();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ list.add(new RouteDefinitionInfo(id, uri, path));
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- return Collections.emptyList();
|
|
|
|
|
|
|
+ return list;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public RouteDefinitionInfo getRouteInfo(String routeId) {
|
|
public RouteDefinitionInfo getRouteInfo(String routeId) {
|