请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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回答

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

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

参考这篇手记。

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

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


0 回复 有任何疑惑可以回复我~
  • localhost:10000/actuator/gateway/routes能正常返回,是参照手记来的。但我发出post请求,试图修改谓词工厂的布尔值时。系统居然给我新增了一个转发路径同样为http://192.168.101.232:8004的路由,就有两个转发路径为http://192.168.101.232:8004的路由了. 没有达到修改路由谓词工厂的作用。见ps2
    回复 有任何疑惑可以回复我~ 2020-06-04 15:32:37
  • 没有,项目刚启动好时,没有route_id重复的的路由,并且这个demo就只配了一个路由,并不复杂。
    回复 有任何疑惑可以回复我~ 2020-06-05 08:13:44
  • 老师,太高兴了。我找到问题所在了。项目启动时就有的路由是不能修改的。但可以项目启动时不配置路由,启动后再动态添加路由,动态添加的路由可以修改。这算是gateway的一个bug吗?哈哈。
    回复 有任何疑惑可以回复我~ 2020-06-05 08:27:18
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信