Releases: Tencent/APIJSON
升级 APIJSONORM 版本为 4.4.8
注:只是为了解决 jitpack.io 打包后 maven 下载失败,实际上只是因为 maven 仓库同步延迟,之前打的 4.4.6 和 4.4.7 现在也能成功通过 maven 下载依赖包了
升级版本号至 4.4.7
Update pom.xml
解决校验参数的 bug
解决 REQUEST_MAP 缓存中的 strcuture 在校验参数抛异常后未被还原,导致后续解析丢了部分配置;
解决 REFUSE 值为 "!" 时因为没有匹配 MUST,而是匹配了 NECESSARY 导致判断出错;
升级版本号为 4.4.6;
【性能】大幅提升增删改的性能;增强对 SQL 数学表达式的支持
增强对聚合函数 @having 和 原始 SQL 片段 @raw 的支持;其它调整和优化;
原始 SQL 片段 @raw:"key" 新增支持条件范围 key{}: "(`Comment`.`userId`=`to`.`userId`)"、比较运算 key>: "to.momentId"、过滤字段 @column: "SUBSTRING_INDEX(SUBSTRING_INDEX(name,',',2),',',1)",聚合函数 @having:"to_days(now())-to_days(`date`)<=7" ;
@having 和 @column 一样支持 function(arg,&char,!) 中包含不符合 字段命名 的字符;优化代码和报错提示;
解决 "isPraised-()": "isContain(praiseUserIdList,userId)" 这种有前置执行 远程函数 的表对象可能返回没有表数据的对象,只有 { "isPraised": true } 这种无意义的对象;
存储过程 @procedure():"fun(key0,key1..)" 返回格式中去掉 key 的 @ 前缀;
取消支持 key? 这种正则匹配方式,全面用 key~ 替代;
优化报错提示;
优化代码;
升级项目版本号;
更新文档;
【安全】增强对批量删改中 id{} 的校验
解决 Windows mysql-5.6.26-winx64 等低于 5.7 的 MySQL 可能 id{}: [0] 生成 id IN(0) 触发 MySQL bug 导致忽略 IN 条件;
注:
本 bug 由于隐式类型转换时把 字符串类型的非数字值 转为 0 导致,目前仅在数据库类型为 MySQL 且版本低于 5.7 时发现。
感谢开源作者群友 天津黑核科技-湖水没了(企业法人代表) 发现的风险
https://my.oschina.net/publiccms/blog/4769241
重构请求参数校验;完善文档;
dbUri 完全交给用户控制,不再针对 MySQL 版本号来自动配置参数;
数据和结构校验类 Structure 整合到 AbstractVerifier;
AbstractParser 中 IdCallback 相关方法移到 AbstractVerifier;
AbstractParser 优化代码避免 NPE;
升级版本号为 4.3.0;
新增 APIJSONORM 的远程依赖文档;
更新其它文档;
【安全】解决校验 JSON 参数的 bug
操作方法 Operation 新增 MUST 和 REFUSE 分别替代 NECESSARY 和 DISALLOW;
解决 Structure.sqlVerify 不可用及预防可能的 SQL 注入;
解决 SQLConfig 自定义的 idKey 和 userIdKey 在 Structure 中未同步导致自定义值校验不通过;
升级 fastjson 版本;更新文档
升级 fastjson 版本为 1.2.74(测试 1.2.75 下载不了 Maven 依赖);
更新文档;