Releases: Tencent/APIJSON
预编译模式下@having和@column支持SQL函数
新增join,支持LEFT,RIGHT,INNER,FULL,OUTTER
新增join,支持LEFT,RIGHT,INNER,FULL,OUTTER:
"<" - LEFT
">" - RIGHT
"&" - INNER
"|" - FULL
"!" - OUTTER
仅适用于GET请求。
示例:
"[]": { "join": "&/User/id@,</Comment/momentId@" }
远程函数支持校验session及新增函数
Server:
远程函数支持校验session;
远程函数新增verifyIdList和verifyURLList;
远程函数新增deleteChildComment来彻底删除评论的子评论及子评论的子评论;
更新table;
远程函数key():function(...)新增优先级key-() > key() > key+();解决bug和其它优化;
Server:
远程函数key():function(...)新增优先级key-() > key() > key+();
AbstractSQLExecutor新增onPutColumn和onPutTable,在DemoSQLExecutor重写可实现控制不返回某张表的某个字段等功能;
解决DemoFunction.isContain在array的值里面的元素类型和value的值的类型不同时return false,导致isContain((JSONArray) [82001,...], (Long) 82001) == false及类似问题;
优化Function执行后的报错;
打包apijson-server2.6.0.jar;
[安全]解决 @ combine:"userId,..." 或 @ combine:"userId{},..." 绕过权限校验
Server:
解决 @ combine:"userId,..." 或 @ combine:"userId{},..." 绕过权限校验;
GETS和HEADS请求也不允许传 @ combine ,避免可能绕过Request表里的规则校验;
优化 @ combine 报错信息;
新增 @combine条件组合 和TYPE校验值类型;优化远程函数、性能和文档;
Server:
新增 @ combine:"key0,&key1,|key2,!key3,..." 支持与或非条件组合;
新增 TYPE:{ key:type } 校验值类型,JSON类型应用场景太窄已注释;
完善远程函数中取值类型错误的异常处理;
解决put/balance接口在未登录时返回错误不是未登录;
优化远程函数,传入request作为第一个参数可最大化灵活实现不同类型的取值,且不用再传参数类型;
优化AbstractParser.onArrayParse缓存取值后数组的性能;
AbstractSQLConfig.putWhere优化性能和条件顺序;
删除 @ condition,用 @ combine 替代;
删除 @ about,查看表和字段属性文档可用APIJSONAuto接口管理工具(查Table和Column),图形化界面更方便;
打包apijson-server2.5.5;
其它:
更新table;
更新通用文档;
新增功能:支持复杂关联关系的查询等;解决Bug;优化性能、文档、压缩包大小等
Server:
引用赋值支持requestObject内提取字段后生成的数组,可实现粉丝动态等复杂关联关系的查询;
预编译模式下支持 key{}:"conditions" 实现部分简单的数学表达式;
新增初期APIJSON构思及实现文档的Windows版;
放宽Document的修改权限,解决APIJSONAuto不能更新测试标准;
解决MySQL CHAR类型字段转JSON报错;
解决引用赋值在引用requestObject内的值时,当类型为JSONObject时会忽略对应的条件;
解决数组内无意义的嵌套浪费性能;
当引用赋值引用requestObject里的对象{}时直接判断为无值;
优化headVerify的代码,方便调试;
删除图片,减少下载的压缩包大小;
更新Demo中libs内的apijson-server.jar
Server:
更新Demo中libs内的apijson-server.jar
修复head请求中@column有多字段时的兼容问题
Server:
解决head请求在@column校验未加isPrepared条件,以及有多个字段时出现的兼容问题
[安全]防SQL注入
Server:
createStatement改为prepareStatement,statement预编译后再setString;
防止可能通过get/gets,head/heads,post,put,delete接口进行SQL注入;
防止可能通过SQLConfig中schema,table,group,having,order,column,values,content,where这些带有String类型值的参数进行SQL注入;
校验@column,@group,@order,@Schema;
预编译模式下禁用key{}:"conditions"和@having:"conditions";