Rewrite功能
rewrite功能重写对应的内容,主要可以对某些匹配请求的header
、host
、url
、path
、query param
、response status
、body
进行rewrite。
rewrite功能支持正则表达式的写法,这是一个非常有用的功能;例如Math项的value正则式中的组捕获项在Replace的value值中可以使用$1~$n之类的捕获组
Rewrite的具体设置规则步骤,可以用下面一幅图来说明:
上面map Rewrite中用127.0.0.1:8080/api/*下的所有接口替换成指定host下对应的/api/*路径,而其他接口不做处理,用rewrite同样可以实现
下面就rewrite设置规则内容页面,就各项rewrite规则做一个简单说明,指出其对应的作用及其使用场景:
header
:- 作用:可以对请求或者响应的header内容进行操作,包括添加、修改及删除。
- 使用场景:在需要对header进行处理时用到,例如为了用上某个环境数据,可能需要对应cookie,这时本地开发是可以在请求的header中加上cookie信息;也可以重写响应header的信息
如下图,在本地开发时,需要的某个环境中的数据api接口需要当前登录用户的登录信息的cookie,本地环境没有这些cookie,这时就需要添加需要cookie头,如下图所示,为匹配的接口添加cookie相关的header:
-
host
: 主要是对请求进行host修改,以达到本地请求获取指定host环境中的数据,常见于mock数据 -
url
:- 作用:修改url中某些部分,可以用别的url进行替换或者url裁剪时间戳或者md5等
- 使用场景:场景使用非常多,既可以对host也可以对path进行rewrite,可以满足指定host下的请求重定向到其他host下对应path下
path
: 主要rewrite path内容使用指定rewrite规则的path来响应指定的请求path,它可以对paht进行裁剪
-
query param
:- 作用:可以对param进行操作,包括修改、添加、删除等
- 使用场景:有时请求可能多传递了不必要的参数,这时可以rewirte功能去掉多余的参数;另外也可以添加请求必须而暂时无法提供的参数
-
response status
: 顾名思义就是对response的状态码进行rewrite;比方我想对一个指定页面A的访问重定向到另一个页面B,就可以用到这个。如下图: -
body
:- 作用:对请求的响应内容做修改,一般是对某一个或几个值进行rewrite,用新的值来替代返回的值
- 使用场景:可以用来mock数据,比方说在开发中为了测试功能需要请求的某个数组字段有值,但是当前环境无法给出,那么就可以使用该功能