POST:表示新增数据, PUT:表示修改或编辑数据, DELETE:表示删除数据, GET:表示获取或查询数据, 当url后边带“'s”表示获取多条数据, 当url后边带“$”表示统计类数据
| 参数名称 | 中文标题 | 描述 |
|---|---|---|
| status | 状态码 | 200:成功,300:错误,301:登陆超时,302:警告 |
| data | 数据集 | 后台返回数据结果集,数组[],对象{} |
| massage | 信息描述 | 当 status 不等于 200 时此属性有内容 |
| layer | 树型数据层级 | 默认从 0 开始,不取子节点,只对树型表有有效 |
| pageno | 当前页码 | 默认从 1 开始 |
| pagesize | 每页数据集 | 默认每页 20 条 |
| fields | 需要返回的属性 |
1、返回表中字段集
A、指定返回字段:字段名1,字段名2,字段名3,字段名n
B、不返回指定字段:-字段名1,-字段名2,-字段名3,-字段名n
2、返回父/子表内容
是否合并,():合并,[]:独立对象
A、返回单条父表记录:父表1(父表字段1,父表字段2,父表字段n),父表2,父表n
B、返回多条子表记录:子表1[子表字段1,子表字段2,子表字段n],子表2[],子表n[]
3、返回多级关联表属性
A、常规方式,如:drug[*],map_rule[rule_id,rule_name],drug.drug_classify[*]
drug[*]:表示返回一级关联表drug中的所有属性;
map_rule[rule_id,rule_name]:表示返回一级关联表map_rule中的两个属性(rule_id,rule_name)
map_rule[rule_id,rule_name,map(map_title,map_type)]:表示返回一级关联表map_rule中的两个属性(rule_id,rule_name),
同时包含父表map中的两个字段(map_title,map_type)
drug.drug_classify[*]:表示返回一级关联表drug中的关联表drug_classify中的属性属性
注:1)取多级数据是返回的数据容器属性名称默认为最后一级的名称,如需要自定义别名时用“->”转换
如:drug.drug_classify[*]默认别名为“drug_classify”,drug.drug_classify->drugcls[*]别名转换为“drugcls”
2)当取多级数据关联方式都为“关联父表”时最多只返回1条数据,其他返回多条数据。
B、JSON方式,如下与常规方式中的示例一致:
{
"fields": "*",
"map_rule": {
"alias":"别名,默认为关联名称,如:map_rule",
"fields": "*"
},
"drug": {
"alias":"别名,默认为关联名称,如:drug",
"fields": "*",
"drug_classify": {
"fields": "*"
}
}
}
|
| orderby | 排序字段 | 字段名,字段名- 默认为按指定字段升序排序,字段名后边跟“-”表示降序排序。支持按关联表中的字段进行排序,按关联表中的字段排序时,返回的字段方式必须为合并"()"方式 |
| distinct | 过虑重复数据 | 默认为false,distinct=true时系统自动过虑掉重复数据,此时统计数据总数可能不准 |
| @api | 接口描述 | 返回接口对应的 API 描述,与数据库中的备注作息一致 |
| {aggregate} | 统计类参数 | 根据字段分组统计分组可以是单个字段,也可是多个字段组合,字段可以是本表中的字段与关联子表中的字段组合。当字段类型为date或datetime类型时,需要指定格式化,默认为yyyy-MM-dd 例1:根据状态字段(state)分组统计,state的值有【1,2,3,4,5,6,7,8,9】 fields=state 例2:根据状态字段(state)与日期字段(log_date)分组统计,state的值有【1,2,3,4,5,6,7,8,9】, 日期字段需要按月进行分组统计 fields=state,log_date|yyyy-MM 注:日期字段需要指定格式化字符串,格式化方式参照Java中的SimpleDateFormat 统计函数规则
统计类参数只支持GET请求方式,可用在单条取数据、多条数据、统计数据接口中,目前只支持这几个方法:
注:统计类函数中的条件支持等号(=)、不等号(!=或<>)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=),条件值参照{fieldname}中的value
当接口为获取单条数据或多条数据时,统计类函数中的条件只能是对应子表的条件;
当接口为统计接口时,统计函数中的条件支持本表与子表条件。
规则:接收参数名=函数名({字段名}[:{字段名}{操作符}{条件值}]),[]中的内容表示可选项,字段名可以是本表中的字段名或关联子表中的字段名。
1)count()-求总数
例1:求状态(state)等于1的总数,count_state1=count(state=1)
例2:求状态(state)等于1、2、3的总数,count_state1=count(state=1,2,3)
例3:求关联子表中的数量,count1=count(子表名.字段名)
说明:count1->变量名,根据你自己的喜好或业务需要自己取名,但第一个字符不能是符号或数字
子表名->每个数据接口的参数中除了“基础数据”外的其他数据中标注为“[关联子表]或[通过中间表(*)关联]”的名称
字段名->为子表中的字段名
例4:求关联子表中字段a的值为1的数量,count1=count(子表名.字段a=1)
例5:求关联子表中字段a的值为1或2的数量,count1=count(子表名.字段a=1,2)
例6:求关联子表中字段a的值为大于10小于等30的数量,count1=count(子表名.字段a=(10,30]),
注意:()表示开区间,[]表示闭区间,(]表示开闭区间,[)表示闭开区间
例7:求关联子表中字段a的值为大于10小于等30,并且字段b的值等5的数量
count1=count(子表名.字段a=(10,30];子表名.字段b=5)
注意:多个条件间用英文状态下的分号“;”或者“&”隔开,多个条件为并且关系
例8:求关联子表中字段a的值为大于10小于等30,并且字段b的值大于5的数量
count1=count(子表名.字段a=(10,30];子表名.字段b>5)
注意:多个条件间用英文状态下的分号“;”或者“&”隔开
注:非count函数,其他函数表达式为:函数名(字段名[:条件表达式]),中括号[]表示可选
2)sum()-求和
实例与count()一致,将count替换为sum即可。
3)avg()-求平均数
实例与count()一致,将count替换为avg即可。
4)max()-求最大值
实例与count()一致,将count替换为max即可。
5)min()-求最小值
实例与count()一致,将count替换为min即可。
注:除了上述聚合函数外,还支持如下函数:[length|abs|round|ceiling|floor](字段名)
length:返回字符串的长度(以字符为单位)。
abs:返回指定数值表达式的绝对值(正值)的数学函数。 (ABS 将负值更改为正值。ABS 对零或正值没有影响。)
round:返回与参数最接近的整数。 如果有多个这样的数,将返回最接近正无穷的那个数。 例如:
如果参数为 2.5, 则 round () 返回 3。
如果参数为 2.4999, round () 返回 2。
如果参数为 -2.5, round () 返回 -2。
如果 参数为空序列, 则 round () 返回空序列。
ceiling:返回不带小数部分并且不小于其参数值的最小数字。 如果参数是一个空序列,则返回空序列。
floor:返回小于或等于指定数值表达式的最大整数。
通用统计中日期使用说明:
统计类函数中的日期字段通用条件
$ym-年中的月份,1-12
$yw-年中的周,1-54,新年第一天为第一周的第一天
$md-月中的天数,1-31
$mw-月中的周,1-5,1号为本月第一周的第一天
$wd-周中的天数,0-6
$hh-天中的小时数,0-23
$mm-小时中的分钟数,0-59
$q-年中的季度,1-4
如:周$wd=count(log_date=$wd)
表示按每周中的天数统计,系统自动生成7天的统计结果
结果示例:
{
"data": [
{
"周一": 26,
"周二": 17,
"周三": 17,
"周四": 34,
"周五": 32,
"周六": 6,
"周日": 2,
"log_date": "2023年04月"
}
],
"status": 200
}
|
| {fieldname} | 字段名称 |
按字段查询,所有字段的查询都是 “并且” 关系
1、精确匹配,{fieldname}=value
当value=时表示为null或为空字符串
当value=null时表示为null的内容
当value=""或''时表示空字符串
2、模糊匹配,只对字符串类型字段有效
{fieldname}=*value*,左右模糊匹配
{fieldname}=*value,左模糊匹配
{fieldname}=value*,右模糊匹配
{fieldname}=abc*bcd,中间模糊匹配
{fieldname}=带“*”号,通配符模糊匹配,
a.如匹配所有地址为“体育西”的,eg:{fieldname}=*体育西*,可匹配“广东省广州市体育东路38号”
b.如匹配所有姓名为“陈”开始,“丰”结尾的所有人,eg:name=陈*丰,匹配到陈大丰,陈二丰,陈张三丰
{fieldname1|fieldname2|fieldname3}=*,多个字段查询,或的关系
3、大于查询:{fieldname}=>value,或者 {fieldname}=(value,],当类型为日期类型时,默认为当前时间
4、小于查询:{fieldname}=<value,或者 {fieldname}=[,value),当类型为日期类型时,默认为当前时间
5、不等查询:{fieldname}=!value
6、区间查询,{fieldname}=[value1,vaule2],{fieldname}=(value1,vaule2)
[]表示 fieldname>=value1 且 fieldname<=value2
()表示 fieldname>value1 且 fieldname<value2
7、不等于空:{fieldname}=!
等价于不为null或不为''字符串
8、不等于空字符串:{fieldname}=!''
不等为空null:{fieldname}=!null
9、多值查询:{fieldname}=value1,value2,value3,valueN
10、日期区间快捷查询:只对日期类型字段或时间戳类型字段有效
统一规则:(近|前|后)?(\\d+)?(分钟?|小?时|天|号|周|个?月份?|年度?)
近:只包含当前,当前日期单位(年、月、周、天、日、时、分),没有前缀时为指定单位日期
如:近1个月,当前日期为2022年9月20号,那么就只取9月1号凌晨到20号的数据,不包含8月份
前:不包含当前
后:包含当前时间(很少用到)
{fieldname}=value,value值参考如下:
当天:表示当天的[00:00:00.000~00:00:00.000)
当月:表示当月第一天的00:00:00.000~下个月的第一天的00:00:00.000,[00:00:00.000~00:00:00.000)
本年:当前年
近n天:表示当前时间前多少天,包含当天
前n天:表示当前时间前多少天,不包含当天
后n天:表示当前时间后多少天
n号|日:表示当月的几号日期(某一天)
n天:默认为近n天
近n月:表示当前时间前几个月,包含当月
前n月:表示当前时间前几个月,不包含当月
后n月:表示当前时间后几个月
n月:表示当前年份的第几个月(某一个月)
近n年:表示当前时间前几年,包含本年
前n年:表示当前时间前几年,不包含本年
后n年:表示当前时间后几年
n年:指定年份,如:2022年表示为[2022-01-01 00:00:00.000~2023-01-01 00:00:00.000)
当n小于100时表示为最近n年
……
前|后n分钟,前|后n小时,前|后n周
11、关联回返数据或查询时,可根据需要进行排除不需要的数据,在关联属性前加“@”符号
A、返回关联表中存在的数据集:(@关联表属性名.主键=!)表示为联表中的数据不为空时返回
B、返回关联表中不存在的数据集:(@关联表属性名.主键=)表示为联表中的数据为空时返回
注: 1)大于、小于、区间只针对Number类型,日期类型有效;
2)bit类型数据可传入对应的二进制位字符串(如:1001),或二进制对应的十进制(如:9)。
|
使用系统自带API系统测试时,需要选中“使用JSON数据提交”,在“使用JSON数据提交:”内容中输入批量新增的内容,内容为数组,数组中每项数据项名称必须保持一致,当数组中的字段内容与数量不一致是,以第一个数组字段与数量为准。如下:
[
{"org_id":"abcd", "account_id":"account_id1"},
{"org_id":"abcd", "account_id":"account_id2"},
{"org_id":"abcd", "account_id":"account_id3"}
]
1)单条增加,如下,在user表中增加一第数据,同时在对应关系子表user_info中增加两条数据
{
"name":"batch_test",
"age":345,
"_create":{
"user_info":[{
"content":"131223123fds"
},{
"content":"131223123asdf"
}]
}
}
2)更新操作(_replace:全部替换,_create:只做新增操作,_update:更新式新增操作),更新user表的同时更新或替换子表user_info中的数据
如果_replace下存在_exist时,只替换指定按条件查询存在的数据,条件中可以包含关联表中的条件
_create时,如果存在时忽略,_update:如果存在数据时做更新操作,不存在是做新增制作。
{
"user_id": "2C9B70D5C3DBFE101F0OE3DAD99908345F7439F8FFABDFFC4",
"_replace":{
"user_info":[{
"content":"中文1fds"
},{
"content":"中文人手动阀手动阀"
}],
},
#只替换指定条件的数据,_exist只有_replace有效
"_exist":{
"user_info":{
k:v
}
}
}