铁哥restful 服务程序是一款免费、开箱即用的 restful 服务程序,简单配置就可以获得所有 restful 接口
JSON5 是一种扩展了的JSON格式,兼容JSON,并且支持注释。
我们来看一下config.json5中的主要配置选项
一、数据库配置 database_url
我们首先要做的是配置好数据库,主要由数据库类型, 用户名,密码,主机,端口以及数据库名组成。
当数据库为mysql或postgres时,格式为 db://user:password@host:port/database
如果端口是默认的,则可以省略端口。
当数据库为sqlite时,直接为路径名,如: d:/data/test.db 或 /var/data/test.db
二、数据库链接池大小 pool_size
默认大小10,这个是建立链接池的数量。
对于 postgresql ,如果设置值超过数据库的设置值,则会报 IO error: invalid utf-8 sequence of 1 bytes from index 0 错误, 务必注意。
三、服务端绑定的IP和端口 listen
格式为 ip:port, 如 127.0.0.1:2000, 绑定本机,2000端口,
如果需要绑定所有IP,则使用 0.0.0.0
四、代理层数 proxy_layer
主要是为了防止恶意程序伪造IP,默认为0
五、密钥 key
这个是加密用户cookie信息,防止用户cookie信息被串改。
RESTFUL服务端的权限验证是基于用户信息的,当用户登录网站时,您应该将用户信息加密后存放在cookies里, 用户信息必须为json格式。cookies具体格式是:
假设用户user信息为: {"name":"xiaomei", "age":23, "vip": 2, "id":329, "mobile": "13600000000"}
假设key为(尽量复杂): $fjj99003%%%
计算 hash值(小写16进制格式): sha3.sha256( user+key)
计算用户信息的base64格式: base64(user)
将hash存放在cookies里: restful_hash=sha3.sha256( user+key)
将用户信息存放在cookies里:restful_user=base64(user)
nodejs示例代码如下:
var sha3 = require('sha3');
var sha256 = new sha3.SHA3(256);
var key="$fjj99003%%%";
var user =JSON.stringify( {"name":"xiaomei", "age":23, "vip": 2, "id":329, "mobile": "13600000000"} );
var restful_user = (new Buffer(user, "base64")).toString();
var restful_hash = sha256.update(string+key).digest("hex");
六、权限配置文件 right_path
存放权限配置文件 right.json5的文件路径
七、redis缓存链接 redis_url
如果需要缓存数据库数据,可以配置redis的链接。
默认为空,即不使用缓存。
缓存的策略,还需要在 right.json5配置,具体请相关缓存配置的章节。
八、允许跨域访问的域名 allow_origin
如果访问restful接口的网站和restful不是同一个域名,则需要设置此项,将可访问restful的网站添加时来
"allow_origin":"http://www.domain1.com,https://www.domain2.com,https://domain3.com"