dbrest 配置说明(2024)

Posted by Henry on 01-06,2024

本系列其他文章

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>