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

如何在WSO2 Integrator Studio中根据客户端传入值替换请求体参数

在WSO2 Integrator Studio中实现请求体Name字段的映射转换

根据你的需求,需要将客户端请求中Name字段的编号转换为指定字符串后转发给下游端点,以下是几种实用的实现方案:

方案1:固定映射(单值替换)

如果所有客户端编号都需要转换为固定值(比如统一转成"BANK"),用Payload Factory Mediator最直接:

  1. 打开你的API对应的序列(通常是In Sequence,在调用下游端点前添加)
  2. 从左侧面板拖拽Payload Factory Mediator到序列中
  3. 选中该Mediator,在右侧配置面板选择JSON格式
  4. 输入JSON模板:
{
  "count": "$1",
  "Name": "BANK"
}
  1. 添加参数:点击Add Parameter,在表达式框输入json-eval($.count),用于提取原请求中的count字段值

配置完成后,该Mediator会保留原请求的count值,同时把Name字段替换为固定的"BANK"。

方案2:多值动态映射(编号对应不同名称)

如果不同客户端编号需要映射到不同字符串,推荐用**Script Mediator(JavaScript)**实现:

  1. 在序列中拖拽Script Mediator
  2. 选中Mediator,在右侧选择JavaScript语言
  3. 粘贴以下脚本(可根据实际需求修改映射表):
// 解析请求体为JSON对象
var payload = JSON.parse(mc.getPayloadJSON());
// 定义编号与名称的映射关系
var nameMapping = {
  "22312312": "BANK",
  "12345678": "INSURANCE",
  "87654321": "RETAIL"
};
// 替换Name字段,无匹配时用默认值
payload.Name = nameMapping[payload.Name] || "UNKNOWN";
// 将修改后的JSON设置回请求体
mc.setPayloadJSON(payload);
  1. 保存配置即可

这种方式灵活度高,后续新增映射只需修改nameMapping对象即可。

方案3:Switch Mediator(适合少量映射)

如果映射关系很少(比如2-3组),可以用Switch Mediator做分支处理:

  1. 拖拽Switch Mediator到序列中
  2. 设置表达式为json-eval($.Name),用于匹配Name字段的值
  3. 为每个编号添加Case:
    • 比如Case值设为"22312312",在Case内添加Property Mediator,设置name为json-eval($.Name),value为"BANK"
  4. 添加Default Case,处理未匹配到的编号(比如设置默认名称)

注意事项

  • 确保客户端请求的Content-Type为application/json,如果不是,需先添加JSON Transform Mediator将请求转为JSON格式
  • 测试时可以用Postman发送请求,通过Integrator Studio的日志查看修改后的请求体是否符合预期
  • 若映射表需要动态更新,可以将映射关系存储在WSO2 Registry或Local Entry中,在Script Mediator中读取对应配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 22:15:49