wedb使用指南

2019-12-27  本文已影响0人  备考999天

概述

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"}]
上一篇 下一篇

猜你喜欢

热点阅读