关于WSO2 APIM 4.2网关URL路径调整的技术咨询
WSO2 APIM 4.2 网关URL路径调整方案
当前你的网关URL格式为 https://ourdomain.com:8243/context/version/resource,以下是两种需求的可行实现方案:
一、调整路径为 /version/context/resource
通过自定义入站序列中介重写请求路径,步骤如下:
- 登录WSO2 APIM管理控制台,进入目标API的「设计」视图
- 切换到「中介」标签,选择「入站」中介流,添加「序列」中介
- 在序列中编写路径重写逻辑,示例代码如下:
<sequence xmlns="http://ws.apache.org/ns/synapse" name="RewritePathSequence"> <!-- 提取原路径各分段 --> <property expression="get-property('axis2','REST_URL_POSTFIX')" name="originalPath"/> <property expression="fn:tokenize($ctx:originalPath, '/')[2]" name="context"/> <property expression="fn:tokenize($ctx:originalPath, '/')[3]" name="version"/> <property expression="fn:substring-after(fn:substring-after(fn:substring-after($ctx:originalPath, '/'), '/'), '/')" name="resource"/> <!-- 构造新路径并重写 --> <property expression="concat('/', $ctx:version, '/', $ctx:context, '/', $ctx:resource)" name="newPath"/> <rewrite> <rewriteURI uri="$ctx:newPath"/> </rewrite> </sequence> - 保存序列并关联到API,重新发布后即可生效
二、移除version和context,仅保留 /resource
提供两种实现方式:
方式1:API设计阶段直接配置
- 新建或编辑目标API,在「基本信息」页面:
- 将上下文字段留空(4.2版本支持空上下文,若提示必填可设为
/) - 将版本字段留空,或设置为
default后通过中介移除
- 将上下文字段留空(4.2版本支持空上下文,若提示必填可设为
- 发布API后,网关URL将直接映射为
https://ourdomain.com:8243/resource
方式2:入站中介重写(适配已发布API)
- 进入API的「中介」标签,添加入站序列中介
- 编写路径简化逻辑,示例代码如下:
<sequence xmlns="http://ws.apache.org/ns/synapse" name="SimplifyPathSequence"> <property expression="get-property('axis2','REST_URL_POSTFIX')" name="originalPath"/> <!-- 提取resource部分 --> <property expression="fn:substring-after(fn:substring-after($ctx:originalPath, '/'), '/')" name="resource"/> <property expression="concat('/', $ctx:resource)" name="newPath"/> <rewrite> <rewriteURI uri="$ctx:newPath"/> </rewrite> </sequence> - 保存并重新发布API,验证路径是否生效
注意事项
- 路径重写后,需确保后端服务的接收路径与重写后的请求路径匹配,或通过出站中介再次调整路径适配后端
- 若网关配置了负载均衡或路由规则,需同步更新相关配置避免冲突
- 测试时可使用curl验证:
检查请求是否被正确转发到目标路径curl -v https://ourdomain.com:8243/context/v1/resource
内容的提问来源于stack exchange,提问作者Arviena J
相关产品推荐
相关产品推荐

