5.0.0
版本发布时间: 2022-03-28 00:26:41
Tencent/APIJSON最新发布版本:6.2.0(2023-08-09 09:57:11)
功能
条件组合新增支持任意逻辑表达式 @combine:"a | (b & !(c | d))";
JOIN 新增支持多个字段关联及引用赋值;
JOIN ON 新增支持带非引用赋值关联的普通条件;
JOIN ON 新增支持 {}, <>, $, ~, !, >, <, >=, <= 等多种关联方式;
& INNER JOIN 新增支持单独设置 JOIN 语句中的字段、条件、分组、聚合、排序等;
* CROSS JOIN 允许没有 JOIN ON 引用赋值关联条件; 模糊搜索 key$:value 新增支持 key 中定制占位符 %, _ 与 value 的拼接方式; 包含选项范围新增支持传路径,例如 key<>:{ path: "$", value:82001 };
聚合函数 @having 支持复杂条件组合,且新增 @having& 简化 AND 连接的写法;
对 @having:"表达式" 和 key{}:"表达式" 新增支持单引号、反引号、各种关键词等; 新增支持 @having:"match(arg0..)AGAINST(..)%2=1" 全文检索等函数后带数学表达式;
对 key{}:">0;length(key)<=5" 新增支持部分为 RAW SQL; 新增支持 NULL 值 @null:"tag"; 新增支持类型转换 @cast:"date:DATE"; 新增数组关键词 compat 解决对聚合函数字段通过 query:2 分页查总数返回值错误; 状态信息 msg 新增提问注意事项;
权限控制:分拆对角色的校验的代码为多个方法,方便灵活重写部分代码; 完善对 id, id{}, userId, userId{} 的条件强制前置 AND 处理; 预估容量新增对 HAVING 聚合函数的处理; 拼错单词 globle 纠正为 global; 去除不必要的 synchonized; 原来的 combine 重命名为 combineMap,combineExpression 重命名为 combine;
升级自身, fastjson 版本分别为 5.0.0, 1.2.79;
使用登记
新增 珠海采筑电子商务有限公司(房地产巨头万科发起),多个项目使用,感谢 @fanpocha 的登记 #367;
新增 乐拼用车 的 Logo,感谢 @VamChao 的登记 #187#issuecomment-1009633459;
文档
新增功能演示及说明的 GIF 图;
兼容性
AbastractSQLConfig 原来的 combine 重命名为 combineMap,combineExpression 重命名为 combine,如果业务后端项目直接调用或重写了相关方法,需要对应修改; https://github.com/Tencent/APIJSON/commit/b248c698887728bd826febd77c4404dd1faecf06
拼错单词 globle 纠正为 global,涉及 Parser 及 AbstractParser 中 getGlobleXXX, setGlobleXXX 14 个方法,如果业务后端项目直接调用或重写了相关方法,需要对应修改; https://github.com/Tencent/APIJSON/commit/d7c311554042620a91faf8f4a63ebcf9a2fd0be2
聚合函数 "@having":"SQL表达式1;SQL表达式2" 默认由 AND 连接改为 OR 连接,改用 "@having&":"SQL表达式1;SQL表达式2" 实现 AND 连接,如果前端(客户端)已经在线上生产环境用了旧方式,后端可以修改 AbstractSQLConfig.IS_HAVING_DEFAULT_AND = true 来兼容 https://github.com/Tencent/APIJSON/commit/9776408d63bc1d768cdd97d910f6b2243b2a94a8
聚合函数 "@having":"toId>0" 这种不包含 SQL 函数的表达式,默认不再支持,可改为 "@having":"(toId)>0",如果前端(客户端)已经在线上生产环境用了旧方式,后端可以修改 AbstractSQLConfig.IS_HAVING_ALLOW_NOT_FUNCTION = true 来兼容 https://github.com/Tencent/APIJSON/commit/9776408d63bc1d768cdd97d910f6b2243b2a94a8
腾讯工程师公开称赞
腾讯 IEG 数据产品开发组负责人 xinlin: ”腾讯的 APIJSON 开源方案,它可以做到零代码生成接口和文档,并且整个生成过程是自动化。
当企业有元数据的时候,马上就可以获得接口“
引用来源:腾讯游戏业务竟然是这样利用低代码平台的 | ArchSummit 全球架构师峰会 2021(深圳)
腾讯科技 后台开发高级工程师 雷大锤: “可以抽出时间来看apijson了,这个可以为T10做准备,也是业界很火的东西,可以提升个人影响力!”
引用来源:腾讯人工作日常—在沟通和扯皮中度过的一周
APIJSON - 零代码、全功能、强安全 ORM 库
腾讯开源前十、内外五个奖项,后端接口和文档零代码,前端(客户端) 定制返回 JSON 的数据和结构 http://apijson.cn
1、 apijson-orm-5.0.0.jar 353.91KB