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

如何在WSO2 API Manager 2.6.0中判断并动态添加请求查询参数

在WSO2 API Manager 2.6.0中动态添加查询参数的消息中介方案

要实现根据原有请求是否带查询参数,自动选择用?或&拼接新参数的需求,可以通过以下Synapse中介序列配置完成:

核心中介序列配置

<sequence name="AddDynamicQueryParam" xmlns="http://ws.apache.org/ns/synapse">
    <!-- 获取当前请求的路径及查询参数 -->
    <property name="REQUEST_URL_POSTFIX" expression="get-property('axis2','REST_URL_POSTFIX')"/>
    
    <!-- 判断URL是否已包含查询参数 -->
    <filter source="contains(get-property('REQUEST_URL_POSTFIX'), '?')" regex="true">
        <then>
            <!-- 已有查询参数,用&拼接新参数 -->
            <property name="REST_URL_POSTFIX" expression="concat(get-property('REQUEST_URL_POSTFIX'), '&amp;parameter=1')"/>
        </then>
        <else>
            <!-- 无查询参数,用?拼接新参数 -->
            <property name="REST_URL_POSTFIX" expression="concat(get-property('REQUEST_URL_POSTFIX'), '?parameter=1')"/>
        </else>
    </filter>
</sequence>

配置说明

  1. 获取请求路径:通过get-property('axis2','REST_URL_POSTFIX')获取当前请求的路径部分(包含原有查询参数,如果存在的话)。
  2. 判断参数存在性:使用contains函数检查路径中是否包含?,以此区分两种拼接场景。
  3. 动态拼接参数:
    • 若已有查询参数,用&连接新参数(XML中需将&转义为&amp;)
    • 若无查询参数,用?作为参数起始符拼接新参数

在WSO2 AM 2.6.0中应用该序列

  1. 登录API Manager Publisher,打开目标API的编辑页面。
  2. 切换到Mediation Policies标签页,选择In Flow。
  3. 点击Add Sequence,选择Custom Sequence,粘贴上述XML配置并保存。
  4. 发布或重新发布API,使配置生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:25:30