本系列其他文章
dbrest v1.1公测版发布
dbrest配置说明
dbrestapi调用说明含样例代码
dbrest lua脚本模板
dbrest小试牛刀
dbrest压测结果
conf.xml配置说明
<?xml version="1.0" encoding="UTF-8" ?>
<Config>
<!--http监听端口-->
<ListenPort>9000</ListenPort>
<!--api路径名称,缺省值:/api-->
<ApiPath/>
<!--是否以Debug模式运行,Debug模式会输出完整日志。缺省值:false-->
<Debug/>
<!--序列化JSON时是否转义html;缺省值:false-->
<EscapeHtml/>
<!--数据库配置-->
<DBConfig>
<!--dbrest支持的驱动,目前支持mysql,mssql,postgres-->
<!--supported driver enum: [mysql, mssql, postgres]-->
<Driver>mysql</Driver>
<Server>127.0.0.1</Server>
<Port>3306</Port>
<User>root</User>
<Password>123456</Password>
<Database>db1</Database>
<!--最大连接数,缺省值:数据库中设置-->
<MaxOpenConns/>
<!--连接存活时间(秒),缺省值:数据库中设置-->
<ConnMaxLifetime/>
</DBConfig>
<!--表名是否强制转为小写,缺省值:false,
当配置为true时,配置中涉及到的表名称,
以及客户端请求URL路径中的表名称,会强制转为小写进行路由匹配。-->
<LowerCaseTableNames></LowerCaseTableNames>
<!--代理的表集合-->
<Tables>
<Table>
<!--Schema名称,缺省值:空。匹配数据库用户的默认Schema-->
<Schema/>
<!--表名称,LowerCaseTableNames配置值为false时,区分大小写-->
<Name>tab1</Name>
<!--表查询是否需要用户认证,缺省值:false-->
<NeedAuth>false</NeedAuth>
<!--表是否允许Insert,缺省值:false-->
<Insertable>false</Insertable>
<!--表是否允许Update,缺省值:false-->
<Updatable>false</Updatable>
<!--表是否允许Delete,缺省值:false-->
<Deletable>false</Deletable>
<!--并发写入数,缺省不限制并发数-->
<ParallelCount/>
<!--扩展的lua脚本文件,lua文件模板参考demo.lua文件。缺省值:空值。-->
<LuaFile/>
<!--Lua脚本生成的SQL是否在主事务中执行,缺省值:false-->
<LuaProcessInTrans/>
</Table>
</Tables>
<AuthConfig>
<!--dbrest支持两种鉴权:BasicAuth,MD5Auth-->
<!--BasicAuth即 http basic authorization,
AccessAccount中配置的AccessKey与AccessSecret
分别对应basic authorization认证需要的username与password
验证方法请自行百度,此处不再详述
-->
<!--MD5Auth鉴权方式:调用方在发送http请求前,在Headers中增加4个键值对,伪代码如下:
//AccessAccount中配置的AccessKey值
var AccessKey ="client2";
//AccessAccount中配置的AccessSecret值
var AccessSecret = "12345";
//当前时间戳(格式yyyyMMddHHmmss,例如:20200928234836)
var clientTime = DateTime.Now().ToString("yyyyMMddHHmmss");
//对上面定义的三个字符串变量连接后进行md5签名
//Utils.MD5表示对字符串进行md5计算的函数
var md5Sign = Utils.MD5(AccessKey+clientTime+AccessSecret);
http.Request.Headers.Add("AccessKey",AccessKey);
http.Request.Headers.Add("ClientTime",clientTime);
http.Request.Headers.Add("Authorization",md5Sign);
http.Request.Headers.Add('Content-Type':'application/json;charset=utf-8')
//向服务器发送请求(CURD)...
-->
<!--AuthType: BasicAuth, MD5Auth; BasicAuth is default vlue-->
<AuthType></AuthType>
<!--客户端请求时间戳,与服务器时间误差范围允许的值范围,最小值3秒。
AuthType值是MD5Auth时,此配置生效-->
<!--minimum 3 seconds-->
<AuthTimeout>10</AuthTimeout>
<AccessAccounts>
<!--调用方安全账户配置-->
<!---AccessKey:用户名;AccessSecret:用户密钥-->
<AccessAccount AccessKey="client1" AccessSecret="abcde">
<!--调用方允许访问的表名称,多表名之间用英文逗号","分割
LowerCaseTableNames配置值为false时,表名区分大小写,
建议表名称与Tables配置节的表名称保持一致.
如果配置了Schema,请在此处用Schema名称.表名称,例如dbo.students-->
<AllowedTables>tab1,tab2</AllowedTables>
<!--是否启用验证调用方IP白名单-->
<FilterByIP>false</FilterByIP>
<!--调用方IP地址白名单,多IP用英文逗号","分割。-->
<!--split multiple ip addresses by commas-->
<ClientIP></ClientIP>
<Field01></Field01>
<Field02></Field02>
<Field03></Field03>
</AccessAccount>
<AccessAccount AccessKey="client2" AccessSecret="12345">
<AllowedTables>*</AllowedTables>
<FilterByIP>true</FilterByIP>
<!--split multiple ip addresses by commas-->
<ClientIP>127.0.0.1,192.168.243.1,49.135.28.45</ClientIP>
<Field01></Field01>
<Field02></Field02>
<Field03></Field03>
</AccessAccount>
</AccessAccounts>
</AuthConfig>
<!--dbrest的授权密码,请勿改动。程序启动时会验证License,过期前请联系开发方申请新授权,2023年最新License-->
<License>
nflP8dDFKRgG7LM/Skbz8UzvoZTM7XPXkutyPTI37eaZR6XnYdFqjdtfOFeGukK4go5hGIlBbLq2JawE7F7exN7odmL1xjXYSWQnsKOtIc8GsZFjHsuYvzt8/ORjprrTajjdDF9nlXN+GTblQbpooIVV2ckPBLzNnfQ6+W/0ELiYFuj1Swoi8LS5tm62HcmBuGA+C2YPqsX3tov+MfGN2UMXH8Jc/UDaj2aM03z1hBv0SPdIROaO7fT35NrE5PlxBG8PRhALm4nP45Rzq/vCqyRCO2zV2qNOYuQevW6eUQQbWTpmJk+pPZI0Msge2HIDixZYwevvCd1zmL7ZPLaVUg==
</License>
</Config>