0.0.4 • Published 6 years ago

dynamic-router-server v0.0.4

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

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设定只应该有一个规则。