一、该问题的重现步骤是什么?
1. 聚合文档进行接口请求
2. 接口404
二、你期待的结果是什么?实际看到的又是什么?
期望调用接口,返回数据
实际返回接口404
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
BladeX
2.8.0版本
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
服务名:activity
接口地址:activity/xxx
gateway中重写接口地址时,/activity/activity/接口名 重写为了 /activity/接口名 ,这一步正确
接口请求到activity服务时,提示了 404
怀疑 服务名activity和接口前缀的activity被重复替掉了,但是无法找到具体代码及问题。麻烦解答下
补充:尝试修改了 接口前缀。 新接口地址为:/activity/activityapi/activity/xx ,发现到activity服务控制台打印为:/activityapi/xx 。 接口地址中只要含有和服务名相同的路径,都被替掉了
参考下文档例子新建api:
之前使用2.7.2版本,无此问题,使用了3年。近期升级到2.8.0,出现的这个问题。能否告知原因及怎么处理。
这个功能的逻辑是会把注册在nacos的服务名称给替换为空,如果后续api和服务名重名,则会被一起替换掉。
如果服务名为 activity 则会对整个url替换掉activity的关键词,所以把服务名独立起来加一个前缀或者后缀让后续不重复就行。
源码在哪里可以修改了,目前接口已经在生产环境,无法替换。
修改红框部分 ,只截取第一个作为服务名的参数
newPath截取的本来就是对的。只是实际跳转时感觉又截取了,这部分源码没有找到
扫一扫访问 Blade技术社区 移动端