@
ren2881971 报表确实复杂,动辄一屏以上,各种 join,子查询,case 等,我也没见过能搞得定的 ORM。
不过一般中小型互联网项目的大部分接口都远没有这么复杂的查询,
APIJSON 支持得很好,仍然不用写代码,目前已实现:
大体功能:增删改查、分页查询、统计与验证、注册登录、模糊搜索、正则匹配、连续范围<br />
、结构校验、角色及操作权限校验、数据保护、远程函数调用等<br />
操作方式:增、删、改、查、调用远程函数<br />
操作对象:单个对象、可关联的多个对象、数组等<br />
请求方法:GET,HEAD,GETS,HEADS,POST,PUT,DELETE<br />
请求结构:{Table:{...}}、{Table0:{...},Table1{...},Table2:{...}...}、{"[]":{Table:{...}}}、{"[]":{Table0:{...},Table1{...},"Array0[]":{...},...}}等各种组合和嵌套<br />
返回结构:对应请求结构的各种 JSON 结构。<br />
功能符号:<br />
```js
"key[]":{} // 查询数组
"key{}":[] // 匹配选项范围
"key{}":"<=10;length(key)>1..." // 匹配条件范围
"key()":"function(arg0,arg1...)" // 远程调用函数
"key@":"key0/key1.../targetKey" // 引用赋值
"key$":"%abc%" // 模糊搜索
"key~":"^[0-9]+$" // 正则匹配
"key%":"2018-01-01,2018-10-01" // 连续范围
"key+":[1] // 增加 /扩展
"key-":888.88 // 减少 /去除
"name:alias" // 新建别名
"@column":"id,sex,name" // 返回字段
"@group":"userId" // 分组方式
"@having":"max(id)>=100" // 聚合函数
"@order":"date-,name+" // 排序方式
"@schema":"sys" // 集合空间
"@database":"PostgreSQL" // 跨数据库
"@role":"LOGIN" // 访问角色
```
详细说明见通用文档中的 [功能符](
https://github.com/TommyLemon/APIJSON/blob/master/Document.md#3.2)