gateWay请求转发异常,接口地址404异常

Blade 未结 3 520
lantian5735
lantian5735 剑圣 2023-09-05 17:45

一、该问题的重现步骤是什么?

1. 聚合文档进行接口请求

2. 接口404


二、你期待的结果是什么?实际看到的又是什么?

期望调用接口,返回数据


实际返回接口404

111111.png


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

BladeX

2.8.0版本


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

服务名:activity

接口地址:activity/xxx


gateway中重写接口地址时,/activity/activity/接口名   重写为了   /activity/接口名 ,这一步正确

22222.png


接口请求到activity服务时,提示了 404

33333333.png


怀疑 服务名activity和接口前缀的activity被重复替掉了,但是无法找到具体代码及问题。麻烦解答下


3条回答
  • 2023-09-05 17:59

    补充:尝试修改了 接口前缀。 新接口地址为:/activity/activityapi/activity/xx   ,发现到activity服务控制台打印为:/activityapi/xx  。  接口地址中只要含有和服务名相同的路径,都被替掉了

    0 讨论(0)
  • 参考下文档例子新建api:%MOXKBA(4MWC%W8R3XO[K{K.png

    作者追问:2023-09-06 09:04

    之前使用2.7.2版本,无此问题,使用了3年。近期升级到2.8.0,出现的这个问题。能否告知原因及怎么处理。

    0 讨论(0)
  • 2023-09-06 10:08

    这个功能的逻辑是会把注册在nacos的服务名称给替换为空,如果后续api和服务名重名,则会被一起替换掉。

    如果服务名为 activity 则会对整个url替换掉activity的关键词,所以把服务名独立起来加一个前缀或者后缀让后续不重复就行。

    作者追问:2023-09-06 14:53

    源码在哪里可以修改了,目前接口已经在生产环境,无法替换。

    回答: 2023-09-06 14:58

    修改红框部分 ,只截取第一个作为服务名的参数image.png

    作者追问:2023-09-12 14:10

    newPath截取的本来就是对的。只是实际跳转时感觉又截取了,这部分源码没有找到

    0 讨论(0)
提交回复