You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSO2 API Manager 2.1带尾斜杠路由自动加*的解决方法求助

解决WSO2 API Manager 2.1自动给尾斜杠端点添加*的问题

我刚好踩过这个版本的坑!WSO2 APIM 2.1在处理带尾斜杠的端点路由时,确实会默认自动追加*,导致后端无法识别请求。下面是几个靠谱的解决办法,你可以按自己的场景选择:

方法1:手动修改对应API的Synapse配置

每个发布后的API都会在APIM服务器生成对应的Synapse配置文件,直接修改它就能强制修正路由:

  • 找到APIM安装目录下的repository/deployment/server/synapse-configs/default/api/文件夹,里面的XML文件对应各个API的配置(文件名一般是API的UUID或名称)
  • 打开目标API的XML文件,找到<resource>标签里的url-mapping属性,把自动生成的/countries/*改成/countries/
  • 保存后,要么重启APIM服务,要么在API Publisher里重新发布一次该API,修改就会生效

方法2:发布API时手动指定路由规则

如果是新发布的API,别依赖自动生成的路由,手动指定更稳妥:

  • 在API Publisher的「Design」页面,编辑对应的资源
  • 在「URL Pattern」输入框里,直接填写你需要的/countries/,不要使用Swagger导入后自动生成的项
  • 完成配置后再发布API,这样路由就不会被自动加上*了

方法3:全局禁用自动追加*的规则

如果你的很多API都需要带尾斜杠的端点,可以全局修改配置一次性解决:

  • 打开APIM安装目录下的repository/conf/api-manager.xml配置文件
  • 找到<APIManager>节点下的<URLMappingGenerator>配置块,把enableWildcardSuffix参数的值改成false
  • 保存配置后重启APIM服务,之后所有新发布的API都不会自动给尾斜杠端点追加*了

额外注意事项

  • 确保你的Swagger YAML里的paths定义确实是/countries/(带尾斜杠),别写成/countries,否则导入后还是会生成不符合预期的路由
  • 修改配置后,建议用curl或者Postman测试一下GET /countries/请求,确认路由正确匹配到后端端点

内容的提问来源于stack exchange,提问作者jeremy303

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:47:21