Releases: Tencent/APIJSON
新增JFinal版Demo叫APIJSONFinal;重命名Library为ORM,Demo为Boot;完善类型校验;修复JOIN和子查询的问题等
Server:
新增JFinal版Demo,名叫APIJSONFinal;
新增URL,BOOLEAN[],STRING[],NUMBER[],DECIMAL[],URL[]类型校验,原有的类型名全改为大写;
Parser新增getMaxQueryPage限制最大分页页码;
AbstractSQLExecutor新增getValue方法支持子类扩展处理value;
DemoSQLExecutor新增支持Blob和Clob类型数据的处理,感谢 @Zerounary 的贡献;
解决 < LEFT JOIN和 > RIGH JOIN 丢主表条件;
解决有 @ APP JOIN 会丢前面 JOIN 的条件;
解决=,IN等只能是1个字段的子查询嵌套JOIN会因为超过一个字段报错;
子查询range的all和any全改为大写的ALL和ANY;
加强对数组关键词query,count,page的校验;
APIJSONLibrary重命名为APIJSONORM;
APIJSONDemo重命名为APIJSONBoot;
打包apijson-server3.4.1.jar;
MySQL:
新增 apijson_all_mysql.sql,整合多张表为一个 sql 文件,可一键导入,感谢 @linbren 的贡献。
新增支持子查询"key@":{};新增支持EXISTS "key}{@":{};新增支持数组默认count
Server:
新增支持 =, IN, FROM 3种类型的子查询 "key@":{ "range": "any", "from": "Table", "Table":{} };
新增支持EXISTS "key}{@":{ "range": "all", "from": "Table", "Table":{} };
新增支持数组默认count,可重写 Parser.getDefaultQueryCount 来自定义;
executeSQL.executeSQL内抽取出onVerifyRole;ObjectParser.executeSQL内抽取出setSQLConfig;
打包 apijson-server3.3.0.jar;
更新 English Document;
MySQL:
更新表;
不兼容的改动:
AbstractParser.onArrayParse 因为 705 行的默认 count 会导致在原来不传 count 但返回结果数 >getDefaultQueryCount() 的情况下,返回的结果只有 getDefaultQueryCount() 个。
https://github.com/TommyLemon/APIJSON/blob/5c989a24618aa2b2ad0964f0c2c58e65b27a2a59/APIJSON-Java-Server/APIJSONLibrary/src/main/java/zuo/biao/apijson/server/AbstractParser.java
以下解决方法任选一种即可
1.重写 getDefaultQueryCount 并 return getMaxQueryCount();
2.修改 Parser.DEFAULT_QUERY_COUNT = MAX_QUERY_COUNT;
3.对应的 /get 新增 APIJSON 版本号,例如 /apijson/3.3/get (也可以在 Request Header 或 JSON 参数内 传过来版本号),最后判断版本号按照以上步骤 1 来兼容旧版;
新增详细的图文使用文档;新增TiDB 的使用说明;改进连续范围 key%:[] 和 远程函数等
Server:
新增详细的图文使用文档,感谢 @Zerounary 的贡献。
连续范围 key%:[] 由 [1,2] 改为 ['1,2', '3,4'...];
Operation新增UPDATE替代PUT避免和RequestMethod.PUT混淆;
远程函数DemoFunction构造方法新增RequestMethod支持函数对方法的限制;
Demo 支持自定义端口号;
login接口支持记住登录7天;
解决login接口在数据库异常时返回结果缺少必要信息;
DemoSQLConfig 新增 TiDB 的使用说明;
优化启动时校验远程函数前查数据的异常处理;
远程函数DemoFunction实例创建从ObjectParser移到Parser,减少不必要的内存占用;
删除Verifier.removeAccessInfo;
打包 apijson-server3.2.5.jar;
MySQL:
更新表;
新增应用层连表 APP JOIN,例如 "join":"@/User/id@"
Server:
新增应用层连表 APP JOIN,例如 "join":"@/User/id@",支持跨不同类型数据库,缓存粒度更细更容易命中;
减少AbstractSQLExecutor.execute因为viceColumnStart起始值错误导致的多余一次缓存;
打包 apijson-server3.2.0.jar;
更新MySQL表;解决Demo工程错误
Server:
新增漏提交的方法 value;
解决 DemoVerifier.getVisitorId 类型转换错误;
优化 AbstractVerifier 和 DemoVerifier 的代码;
打包 apijson-server3.1.7.jar;
MySQL:
更新表;
[Demo有错误]新增支持 String 类型的id;更新 Android 工程
Server:
新增支持 String 类型的id;
新增支持自定义 post 插入数据的 id,可为 Long 或 String 类型;
新增支持 String 类型的 visitorId 来校验权限;
Android:
新增一键清除编译缓存的Windows批处理文件;
解决登录接口变化导致解析问题;
解决用 Android Studio 3.x 直接打包的 Debug APK 不能手动或通过 ADB 命令安装;
同步并优化 APIJSONLibrary 的代码;
新增访问权限表Access;Structure支持~校验正则
Server:
新增访问权限表Access;
Structure支持~校验正则;
所有非自动化API都格式化Response;
format格式化Response仅在成功时才生效;
优化JSONResponse格式化key的处理,formatArrayKey和formatObjectKey都去前缀@;
完善及优化JSONResponse代码;
打包apijson-server3.1.5.jar;
MySQL:
新增访问权限Access表;
【安全】解决自动化校验 UNIQUE 失效
Server:
解决自动化校验 UNIQUE 失效
POST操作默认为OWNER角色;新增支持Between key%;解决bug及优化提示
Server:
POST操作默认为OWNER角色且自动添加userId;
新增支持Between key%;
正则表达式符号新增支持~,且支持*忽略大小写;
Java Demo新增删除动态下所有评论的远程函数;
等价条件 key:value 不允许 JSONArray 类型;
PUT 请求在没有 SET 语句时直接报错;
解决 key! 报错;
优化key:value不合法的提示;
优化join解析异常的路径提示;
优化设置tag的提示;
MySQL:
更新表;
新增Function;join兼容PostgreSQL;优化远程函数;修复bug及其它优化
Server:
新增Function,启动时自检;
join不再强制副表传@column;
join兼容PostgreSQL;
解决join在主表为空对象时未解析为JOIN语句;
解决server.JSONRequest未转换数组为JSONArray导致后面解析出错;
Schema,Table,column都加引号解决Order等关键词作为表名出错;
优化Admin角色的处理;
优化远程函数;
删除多余的FunctionList;
打包apijson-server3.0.0.jar;
MySQL:
更新表