You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by mi...@apache.org on 2018/09/28 03:34:06 UTC

[incubator-dubbo-ops] branch develop updated: Add BaseDTO for receive ID parameter with @RequestBody. (#123)

This is an automated email from the ASF dual-hosted git repository.

min pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-ops.git


The following commit(s) were added to refs/heads/develop by this push:
     new 063fcfe  Add BaseDTO for receive ID parameter with @RequestBody. (#123)
063fcfe is described below

commit 063fcfe5969fdef5e94b9bb0fb7343c27ee02674
Author: 马金凯 <ma...@vip.qq.com>
AuthorDate: Fri Sep 28 11:33:51 2018 +0800

    Add BaseDTO for receive ID parameter with @RequestBody. (#123)
    
    Add detail api.
    
    Change `search` to GET method.
    
    Change `delete` parameter use BaseDTO.
---
 .../dubbo/admin/controller/AccessesController.java | 39 +++++++++++++++-------
 .../java/org/apache/dubbo/admin/dto/AccessDTO.java | 11 +-----
 .../admin/dto/{AccessDTO.java => BaseDTO.java}     | 39 ++++------------------
 .../src/components/AccessControl.vue               |  6 ++--
 4 files changed, 38 insertions(+), 57 deletions(-)

diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/AccessesController.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/AccessesController.java
index 027b583..389f4fa 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/AccessesController.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/AccessesController.java
@@ -20,7 +20,7 @@ import com.alibaba.dubbo.common.logger.Logger;
 import com.alibaba.dubbo.common.logger.LoggerFactory;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.dubbo.admin.dto.AccessDTO;
-import org.apache.dubbo.admin.governance.service.ProviderService;
+import org.apache.dubbo.admin.dto.BaseDTO;
 import org.apache.dubbo.admin.governance.service.RouteService;
 import org.apache.dubbo.admin.registry.common.domain.Route;
 import org.apache.dubbo.admin.registry.common.route.RouteRule;
@@ -37,20 +37,16 @@ public class AccessesController {
 
     @Resource
     private RouteService routeService;
-    @Resource
-    private ProviderService providerService;
 
-    @RequestMapping("/search")
-    public List<AccessDTO> searchAccess(@RequestBody(required = false) Map<String, String> params) throws ParseException {
+    @RequestMapping(value = "/search", method = RequestMethod.GET)
+    public List<AccessDTO> searchAccess(@RequestParam(required = false) String service) throws ParseException {
         List<AccessDTO> result = new ArrayList<>();
         List<Route> routes = new ArrayList<>();
-        if (StringUtils.isNotBlank(params.get("service"))) {
-            Route route = routeService.getBlackwhitelistRouteByService(params.get("service").trim());
+        if (StringUtils.isNotBlank(service)) {
+            Route route = routeService.getBlackwhitelistRouteByService(service.trim());
             if (route != null) {
                 routes.add(route);
             }
-        } else {
-            //TODO throw exception
         }
 
         for (Route route : routes) {
@@ -67,15 +63,34 @@ public class AccessesController {
                 result.add(accessDTO);
             }
         }
+
         return result;
     }
 
+    @RequestMapping(value = "/detail", method = RequestMethod.GET)
+    public AccessDTO detailAccess(@RequestParam Long id) throws ParseException {
+        Route route = routeService.findRoute(id);
+        if (route.getName().endsWith(AccessDTO.KEY_BLACK_WHITE_LIST)) {
+            AccessDTO accessDTO = new AccessDTO();
+            accessDTO.setId(route.getId());
+            accessDTO.setService(route.getService());
+            Map<String, RouteRule.MatchPair> when = RouteRule.parseRule(route.getMatchRule());
+            for (String key : when.keySet()) {
+                accessDTO.setWhitelist(when.get(key).getUnmatches());
+                accessDTO.setBlacklist(when.get(key).getMatches());
+            }
+            return accessDTO;
+        } else {
+            return null;
+        }
+    }
+
     @RequestMapping(value = "/delete", method = RequestMethod.POST)
-    public void deleteAccess(@RequestBody Map<String, Long> params) {
-        if (params.get("id") == null) {
+    public void deleteAccess(@RequestBody BaseDTO baseDTO) {
+        if (baseDTO.getId() == null) {
             throw new IllegalArgumentException("Argument of id is null!");
         }
-        routeService.deleteRoute(params.get("id"));
+        routeService.deleteRoute(baseDTO.getId());
     }
 
     @RequestMapping(value = "/create", method = RequestMethod.POST)
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/dto/AccessDTO.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/dto/AccessDTO.java
index 94c06ff..c739ed1 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/dto/AccessDTO.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/dto/AccessDTO.java
@@ -18,23 +18,14 @@ package org.apache.dubbo.admin.dto;
 
 import java.util.Set;
 
-public class AccessDTO {
+public class AccessDTO extends BaseDTO {
     // BlackWhiteList key
     public static final String KEY_BLACK_WHITE_LIST = "blackwhitelist";
 
-    private Long id;
     private String service;
     private Set<String> whitelist;
     private Set<String> blacklist;
 
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
     public String getService() {
         return service;
     }
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/dto/AccessDTO.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/dto/BaseDTO.java
similarity index 57%
copy from dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/dto/AccessDTO.java
copy to dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/dto/BaseDTO.java
index 94c06ff..a7e9e77 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/dto/AccessDTO.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/dto/BaseDTO.java
@@ -16,16 +16,13 @@
  */
 package org.apache.dubbo.admin.dto;
 
-import java.util.Set;
-
-public class AccessDTO {
-    // BlackWhiteList key
-    public static final String KEY_BLACK_WHITE_LIST = "blackwhitelist";
-
+/**
+ * BaseDTO
+ *
+ * For receive ID parameter with @RequestBody
+ */
+public class BaseDTO {
     private Long id;
-    private String service;
-    private Set<String> whitelist;
-    private Set<String> blacklist;
 
     public Long getId() {
         return id;
@@ -34,28 +31,4 @@ public class AccessDTO {
     public void setId(Long id) {
         this.id = id;
     }
-
-    public String getService() {
-        return service;
-    }
-
-    public void setService(String service) {
-        this.service = service;
-    }
-
-    public Set<String> getWhitelist() {
-        return whitelist;
-    }
-
-    public void setWhitelist(Set<String> whitelist) {
-        this.whitelist = whitelist;
-    }
-
-    public Set<String> getBlacklist() {
-        return blacklist;
-    }
-
-    public void setBlacklist(Set<String> blacklist) {
-        this.blacklist = blacklist;
-    }
 }
diff --git a/dubbo-admin-frontend/src/components/AccessControl.vue b/dubbo-admin-frontend/src/components/AccessControl.vue
index 500dac5..42fb311 100644
--- a/dubbo-admin-frontend/src/components/AccessControl.vue
+++ b/dubbo-admin-frontend/src/components/AccessControl.vue
@@ -212,8 +212,10 @@ export default {
     search (filter) {
       this.loading = true
       this.$router.push({path: 'access', query: (filter !== '' ? {service: filter} : null)})
-      AXIOS.post('/access/search', {
-        service: filter
+      AXIOS.get('/access/search', {
+        params: {
+          service: filter
+        }
       }).then(response => {
         this.accesses = response.data
         this.loading = false