【WebApi】根据请求动态切换数据库
需求场景:
由于iOS的App每次审核都比较慢,而且多数情况下上架App都得先同步更新WebApi,为了能快速通过审核并且不影响正式库的运行使用,建议可在用户登录时用特定方法切换数据库请求
解决方案:
1、在App端做文章 通过登录时特定的标记来指定请求的WebApi地址
2、在WebApi端做文章,通过【WebApi】利用ActionFilterAttribute记录客户端请求及返回信息的了解,可在获取到请求数据时做文章
下来说说其中一种思路:
a、让app在请求头Headers中增加一个标记位比如:flag 通过标记位的区分来确定本次请求需要切换哪个数据库
b、在OnActionExecuting方法中,获取到请求时,对其进行解析
string flag = context.Request.Headers.GetValues("aaa").ToArray()[0]; //获取请求头中的aaa标记位 //非常重要的代码 if (flag == "001") //表示正式库 DbHelperSQL.InitConnString("ConnectionString1"); else //表示测试库 DbHelperSQL.InitConnString("ConnectionString2");
PS:
DbHelperSQL.InitConnString方法是根据参数读取webconfig的配置项,获取配置项中提前配置好的数据库连接地址