dynamic-router-server v0.0.4
dynamic-router-server
dynamic router server for axe
为 Axe
中的动态路由提供简单的服务器实现。 使用 :
npm install dynamic-router-server -g
# 参数是文件路径, 以存放数据。
dynamic-router-server path/to/save
版本限定
设置版本,如 设置 login => react://login/
,版本为1.0.0
,表示从 1.0.0
版本(包括)的APP开始,该规则生效。
而如果之后再次设置login
的路由, 如 2.0.0
版本,我们把login
模块做了一份原生实现, 则配置了login => axe://login/
,版本号限定为2.0.0
所以,对于2.0.0
及以上的APP,使用的是axe://login/
, 而对 1.0.0
-> 2.0.0
这中间的部分APP, 依旧使用react://login/
的规则。
即版本限定,优先使用最新版本的配置。
tag限定
设置tag
的目的,是为了更加灵活的进行设置, 表现为 设置了tag
的规则,只对满足tag
请求下发这条规则。 tag
可以用来解决 多版本APP问题,如一个系统支持多个APP (不建议这样做, 最好还是能一个系统对应一个APP。)。
tag
最重要的功能在于 之后可以对接 灰度测试或者 AB测试系统。 如在一个版本上,我们同时有多种实现时 , 我们可以通过tag
来设定 APP选择具体路由规则。详细示例 :
如一开始我们有路由 login => axe://login/
, 之后我们开发了一个react-native
版本, 则我们需要验证一下效果,而不是全部替换。 则我们设定规则login => react://login/
, 对该规则设定了一个tag
: react-test
。
对接AB
测试, 则业务系统会给每个用户发放tag
, 如设定规则 5%的用户来进行这次测试。 所以有两个用户根据AB测试系统下发的tag
, A带着 react-test
, B带着xxx
,来请求动态路由服务器, 而服务器根据tag
的设定不同,使A 使用 login => react://login/
规则, 而 B使用 login => axe://login/
tag
判断时, 前端可以带多个tag
, 而规则命中tag
的要求是, 配置的tag
在用户的标签列表内。
注意事项
系统只有添加和停止两个操作, 没有修改操作, 也没有删除操作。 对于废弃的规则,要及时停止。
对于规则,在一个版本上, 相同tag
设定只应该有一个规则。