1. 概述
#
1.1 插件名称- paramMapping插件
#
1.2 适用场景- 添加/删除/替换请求体中固定的参数
#
1.3 插件功能- 用来对你的请求参数进行修改的插件。
#
1.4 插件代码核心模块
shenyu-plugin-param-mapping
核心类
org.apache.shenyu.plugin.param.mapping.ParamMappingPlugin
#
1.5 添加自哪个shenyu版本- Since ShenYu 2.4.0
2. 如何使用插件
#
2.1 插件使用流程图#
2.2 导入pom- 在网关的
pom.xml
文件中添加paramMapping
的支持。
<!-- apache shenyu param_mapping plugin start--><dependency> <groupId>org.apache.shenyu</groupId> <artifactId>shenyu-spring-boot-starter-plugin-param-mapping</artifactId> <version>${project.version}</version></dependency><!-- apache shenyu param_mapping plugin end-->
#
2.3 启用插件- 在
shenyu-admin
--> 基础配置 --> 插件管理 -->paramMapping
设置为开启。
#
2.4 配置插件#
2.4.1 插件配置- 再使用插件时应该开启插件!
#
2.4.2 选择器配置选择器和规则设置,请参考:选择器和规则管理。
只有匹配的请求,才会修改请求体。
#
2.4.3 规则配置参数解析:
addParameterKeys
: 在请求体中增加一个key-value
replaceParameterKeys
: 替换请求体中的某一个key
,key
是要被替换的值,value
是替换后的值removeParameterKeys
: 移除请求体中的某一个key
修改请求体是通过
JSONPath
来实现的,$.
代表根目录
#
2.5 示例#
2.5.1 在请求中添加参数#
2.5.1.1 配置插件- 使用该插件时应先开启插件!
#
2.5.1.2 选择器配置#
2.5.1.3 规则配置上面的配置,插件开启前,请求内容为
{"id":3,"data":{"value":"18","age":"36"}}
#
2.5.1.4 验证结果插件开启后,请求内容为
{"name":"shenyu","userId":3,"data":{"age":"36"}}
上述操作,增加一个name:shenyu
,把id
替换为userId
,移除data
中的value
。
3. 如何禁用插件
- 在
shenyu-admin
--> 基础配置 --> 插件管理 -->paramMapping
设置为关闭。