
APIJSON 就是用来解决前后端关于接口各种联调和扯皮等问题的。
排序?前端传 "@order": "id+", "@order": "date-" ... 想怎么排就怎么排,后端不用写代码自动支持。
分组?前端传 "@group":"userId", "@group":"momentId" ... 想用哪个字段就就用哪个字段,后端不用写代码自动支持。
分页?前端传 "count":10, "page":1 想怎么分就怎么分,后端不用写代码自动支持,还能 "query":2 同时查数据和总数。
MySQL, PostgreSQL, Oracle 等各种数据库常用功能全都「自动化」 支持,不用后端写代码:
```sql
"key[]":{} // 查询数组
"key{}":[1,2,3] // 匹配选项范围,WHERE key IN(1,2,3)
"key{}":"<=10;length(key)>1..." // 匹配条件范围,WHERE key<=10 OR length(key)>1 OR ...
"key()":"function(arg0,arg1...)" // 远程调用函数,fun.invoke("function", value0, value1...)
"key@":"key0/key1.../targetKey" // 引用赋值,ON Table1.key = Table2.targetKey
"key$":"%abc%" // 模糊搜索,WHERE key LIKE '%abc%'
"key~":"^[0-9]+$" // 正则匹配,WHERE key BINARY REGEXP '^[0-9]+$'
"key%":"2018-01-01,2018-10-01" // 连续范围,WHERE key BETWEEN '2018-01-01' AND '2018-10-01'
"key+":[1] // 增加 /扩展,SET key = json_array_append(key, '$', '1')
"key-":888.88 // 减少 /去除,SET key = key - 888.88
"name:alias" // 新建别名,SELECT name AS alias
"@column":"id,sex,name" // 返回字段,SELECT id,sex,name
"@group":"userId" // 分组方式,GROUP BY userId
"@having":"max(id)>=100" // 聚合函数,HAVING max(id)>=100
"@order":"date-,name+" // 排序方式,ORDER BY date DESC, name ASC
"@schema":"sys" // 集合空间,SELECT sys.Table
"@database":"POSTGRESQL" // 跨数据库
"@role":"LOGIN" // 访问角色
```