Skip to main content
Version: 2.4.0

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: 替换请求体中的某一个 keykey 是要被替换的值,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 设置为关闭。