老师,为什么post方法修改一个gateway的路由,却变成了新增?

来源:10-12 监控Spring Cloud Gateway

他门说这就是人生

2020-06-04

localhost:10000/actuator/gateway/routes/qa POST

qa是routes id,

一下是请求的参数:

{
  "predicates": [
    {
      "name": "Switch",
      "args": {
        "_genkey_0": false
      }
    }
  ],
  "uri": "http://192.168.101.232:8004",
  "order": 0,
  "route_id":"qa"
}

其实我想实现一个可在界面操作,来启停网关的功能。写了一个开关谓词工厂,其实就是一个布尔值。想通过actuator修改这个值来实现界面的启停服务转发,为什么不行呢。请求之后,它为我新增了一个路由,而不是修改路由


ps:

我删除routes也返回404,spring cloud和boot版本已经和您的统一了:

localhost:10000/actuator/gateway/routes/qa DELETE 返回404


ps2:

这是post请求之后,查看routes端点的结果:

[
    {
        "route_id": "qa",
        "route_definition": {
            "id": "qa",
            "predicates": [
                {
                    "name": "Switch",
                    "args": {
                        "_genkey_0": "false"
                    }
                }
            ],
            "filters": [],
            "uri": "http://localhost:8004/img/top/pclight.png",
            "order": 0
        },
        "order": 0
    },
    {
        "route_id": "qa",
        "route_definition": {
            "id": "qa",
            "predicates": [
                {
                    "name": "Switch",
                    "args": {
                        "_genkey_0": "false"
                    }
                }
            ],
            "filters": [],
            "uri": "http://localhost:8004/img/top/pclight.png",
            "order": 0
        },
        "order": 0
    }
]


写回答

1回答

大目

2020-06-04

您好,您的思路没有问题。

http://www.imooc.com/article/290822

参考这篇手记。

访问localhost:10000/actuator/gateway/routes能有正常的返回吗?

什么是修改变新增?route_id是唯一的,你那本产生了两个route_id相同的路由?


0
4
他门说这就是人生
非常感谢!
2020-06-06
共4条回复

Spring Cloud Alibaba微服务从入门到进阶

面向未来微服务:熟练掌握Spring Cloud Alibaba

3054 学习 · 1322 问题

查看课程