wedb使用指南
概述
WEDB封装了SqlAlchemy包,并提供一组用户数据库操作的API。它的目标是为事务性业务提供服务,所以,每一项操作要保持较小的数据量。在项目中,使用wedb操作数据库有两个好处:
Ø 避开SQL语句,使代码安全、健壮、可移植
Ø 使用RESTFUL风格的API,避免直接使用数据访问包,避免发生版本冲突问题
WEDB是微事务性的数据访问代理,它供应用后台调用。为了安全,任何C端与B端的程序不要直接使用它。
RESTFUL API
Tableinfo(GET)
Ø 功能:获取某个(些)表的信息
Ø URL: http[s]://quanklife.com/wedb/<database>/tableinfo[/<table>[/<column>]]
Ø URL参数:
@database:数据库名
@table:表名,缺省即查询所有表信息
@column:列明,缺省即查询所有列信息
Ø 返回:json对象
Ø 例子:
[http://quanklife.com/wedb/52go/tableinfo](http://quanklife.com/wedb/52go/tableinfo)
[http://quanklife.com/wedb/52go/tableinfo/user_info](http://quanklife.com/wedb/52go/tableinfo/user_info)
[http://quanklife.com/wedb/52go/tableinfo/user_info/update_time](http://quanklife.com/wedb/52go/tableinfo/user_info/update_time)
query(GET)
Ø 功能:查询某数据表的记录
Ø URL: http[s]://quanklife.com/wedb/<database> /query/<table>[/<order_by>[/<int:offset>[/<int:limit>[/<format>]]]]
Ø URL参数:
@database:数据库名
@table:表名
@order_by:排序字段,指定排序字段;默认不排序
@offset:返回起始位置;默认为0
@limit:返回记录数(不足则全部推送);默认为30
@format:数据格式,json,list,msgpack,csv;默认为json
Ø 返回:按照指定的格式返回数据
Ø 例子:
URL:[http://quanklife.com/wedb/52go/query/miniapp_info](http://quanklife.com/wedb/52go/query/miniapp_info)
URL:[http://quanklife.com/wedb/52go/query/miniapp_info/ID](http://quanklife.com/wedb/52go/query/miniapp_info/ID)
URL:[http://quanklife.com/wedb/52go/query/miniapp_info/ID/0/20/csv](http://quanklife.com/wedb/52go/query/miniapp_info/ID/0/20/csv)
query(POST)
Ø 功能:查询某数据表的记录
Ø URL: http[s]://quanklife.com/wedb/<database> /query
Ø URL参数:
@database:数据库名
Ø POST参数(json obj):
@table:表名
@filter_by:过滤字段,json对象,如:{field1:value1,field2:value2,…}
@order_by:排序字段,指定排序字段;默认不排序。Json数组,如:[field1, field2,…]
@offset:返回起始位置;默认为0
@limit:返回记录数(不足则全部推送);默认为30
@format:数据格式,json,list,msgpack,csv;默认为json
Ø 返回:按照指定的格式返回数据
Ø 例子:
SQL:SELECT * FROM miniapp_info WHERE release_time=’ 2019-12-04’ ORDER BY ID, merchant_id LIMIT 0,20
URL:[http://quanklife.com/wedb/52go/query](http://quanklife.com/wedb/52go/query)
BODY:
{
'table':’miniapp_info’,
'filter_by':{‘release_time’:’2019-12-04’},
'order_by':[‘ID’,’merchant_id’],
'offset':0,
'limit':20,
'format':’json’
}
add(GET)
Ø 功能:向某个表增加一条记录
Ø URL: http[s]://quanklife.com/wedb/<database> /add/<table>?<field-list>
Ø URL参数:
@database:数据库名
@table:表名
Ø GET参数:每个参数表示一个字段的键值对。由于这种参数不能灵活地传输非字符类的值,所以一般用POST方法
Ø 返回:返回插入的记录数
Ø 例子:
SQL:INSERT INTO miniapp_info(ID) VALUES('1232222')
URL:[http://quanklife.com/wedb/52go/add/miniapp_info?ID=1232222](http://quanklife.com/wedb/52go/add/miniapp_info?ID=1232222)
add(POST)
Ø 功能:向某个表增加一些记录
Ø URL: http[s]://quanklife.com/wedb/<database> /add/<table>
Ø URL参数:
@database:数据库名
@table:表名
Ø POST BODY:
如果是json object,则每个键值对代表一个字段,如下:
{
field1:value1,
field2:value2
……
}
或json list,则增加多个记录,list里的每个json对象与上述描述的一样。
Ø 返回:返回插入的记录数
Ø 例子:
SQL:
INSERT INTO miniapp_info(ID,wechat_pub) VALUES(’mini122211222’, ’812229’);
INSERT INTO miniapp_info(ID,wechat_pub) VALUES(’ mini12221698’, ’ 8189112’);
URL:[http://quanklife.com/wedb/52go/add/miniapp_info](http://quanklife.com/wedb/52go/add/miniapp_info)
BODY:
[
{
'ID':’mini122211222’,
‘wechat_pub’:’812229’
},
{
'ID':’mini12221698’,
‘wechat_pub’:’8189112’
}
]
update(GET)
Ø 功能:更新指定表的一条数据
Ø URL: http[s]://quanklife.com/wedb/<database> /update/<table>/<key>
Ø URL参数:
@database:数据库名
@table:表名
@key:过滤字段
Ø GET参数:每个参数表示一个字段的键值对,包含过滤字段key。由于这种参数不能灵活地传输非字符类的值,所以一般用POST方法
Ø 返回:更新的记录数
Ø 例子:
SQL:UPDATE miniapp_info SET wechat_pub='83250042’WHERE ID='1232222’
URL:[http://quanklife.com/wedb/52go/update/ID/miniapp_info?ID= 1232222 &wechat_pub=83250042](http://quanklife.com/wedb/52go/update/ID/miniapp_info?ID=%201232222%20&wechat_pub=83250042)
update(POST)
Ø 功能:向某个表更新一些记录
Ø URL: http[s]://quanklife.com/wedb/<database> /update/<table>
Ø URL参数:
@database:数据库名
@table:表名
Ø POST BODY格式为
[[filter1,values1],[filter2,values2],...,[filtern,valuesn]]
请看:
[[{"ID":"667677"},{"name":"Sunny","age":36}], [{"name":"Tom"},{"wage":89}]]
相当于执行两个SQL命令:
update <table> set name="Sunny",age=36 where ID="667677"
update <table> set wage=89 where name="Tom"
Ø 返回:更新的记录数
remove(GET)
Ø 功能:删除指定表的一条数据
Ø URL: http[s]://quanklife.com/wedb/<database>/remove/<table>?<filter_by>
Ø URL参数:
@database:数据库名
@table:表名
Ø GET参数:
@filter_by:过滤字段,可以多个,如:
merchart_id=32323232323232&wechat_pub=updateit
Ø 返回:删除的记录数
Ø 例子:
SQL:DELETE FROM miniapp_info WHERE merchart_id='32323232323232'
URL:[http://quanklife.com/wedb/52go/remove/miniapp_info?merchart_id= 32323232323232](http://quanklife.com/wedb/52go/remove/miniapp_info?merchart_id=%2032323232323232)
remove(POST)
Ø 功能:删除一些记录
Ø URL: http[s]://quanklife.com/wedb/<database>/remove/<table>
Ø URL参数:
@database:数据库名
@table:表名
Ø POST BODY格式为
[{field1:value1,field2:value2,…},{…},…]
以上是JSON LIST,LIST的每个对象,是一组过滤条件。比如:
Ø 返回:删除记录数
Ø 例子:
SQL:DELETE FROM miniapp_info WHERE merchart_id='32323232323232' OR merchart_id='990912'
URL:http://quanklife.com/wedb/52go/remove/miniapp
BODY:
[{"merchart_id":"32323232323232"},{"merchart_id":"990912"}]