@GetMapping("/routes")
@UnifiedResultExclusion
public Flux<Map<String, Object>> routes() {
return this.routeLocator.getRoutes().map(this::serialize);
}
Map<String, Object> serialize(Route route) {
HashMap<String, Object> r = new HashMap<>();
r.put("route_id", route.getId());
r.put("uri", route.getUri().toString());
r.put("order", route.getOrder());
r.put("predicate", route.getPredicate().toString());
if (!CollectionUtils.isEmpty(route.getMetadata())) {
r.put("metadata", route.getMetadata());
}
ArrayList<String> filters = new ArrayList<>();
for (int i = 0; i < route.getFilters().size(); i++) {
GatewayFilter gatewayFilter = route.getFilters().get(i);
filters.add(gatewayFilter.toString());
}
r.put("filters", filters);
return r;
}