Releases: Tencent/APIJSON
调整项目结构;解决编译错误
Srever:
Demo 工程及数据库文件都迁移到 APIJSON-Demo 项目;
APIJSONORM 和 APIJSONFramework 迁移到最外层;
APIJSONORM 新增 EXIST 校验;
APIJSONORM 解决编译错误;
打包 apijson-orm-4.2.0.jar 和 apijson-framework-4.2.0.jar,并作为默认依赖;
其它:
更新文档
新增支持 @raw 关键词 和 IBM DB2 数据库
Server:
新增支持 IBM DB2 数据库;
新增 @raw 关键词,支持自定义 WHERE 条件拼接,感谢 @zhoulingfengofcd 的贡献;
新增是否成功 ok、详细的分页信息 info;
新增支持随机函数 rand() 来排序;
新增 ( ANTI JOIN 和 ) FOREIGN JOIN;
新增支持自动补全 Comment:[] 这种每个项都自定义的 批量新增/修改 的请求配置;
新增支持重写方法 onMissingKey4Combine 来自定义 @combine 的空值处理;
完善 OUTER, ANTI, FOREIGN JOIN 的无条件边界情况;
调整 ^ SIDE JOIN 和 * CROSS JOIN 的实现;
优化批量新增、修改后返回的字段,保持和规范统一;
APIJSONFramework 引入 UnitAuto 自动化单元测试工具 MethodUtil 及相关接口和远程函数;
APIJSONBoot 新增 Rap 的文档接口 Demo,优化测试用的 Swagger 文档接口;
删除 APIJSONBoot 和 APIJSONBootTest 中多余的 apijson-orm 依赖;
解决PUT方法,某个字段加减时,类型keyType没有重置的BUG;
重命名错误单词 outter 为 outer;
打包 apijson-orm-4.1.0.jar 和 apijson-framework-4.1.0.jar;
Android:
替换自动生成的用来测试封装 Request JSON 和解析 Response JSON 的 Java 和 Kotlin 代码
其它:
新增 APIJSON 规划及路线图 文档;
新增支持批量 POST 和每项单独设置的批量 PUT;新增支持自增id;APIJSONBoot 重构为 APIJSONFramework 和新的 APIJSONboot;简化 APIJSONORM 包名
Server:
将 APIJSONboot 抽取为 APIJSONFramework 和新的 APIJSONBoot;
新增简单 Demo,叫 APIJSONBootTest,只有 3 个类、几十行代码;
新增支持批量 POST,格式为 Table[]:[{...},{...}...] - 感谢 @zhoulingfengofcd 的贡献 ;
PUT 支持单独设置每项的批量修改,格式和批量新增 POST 相比多了 id;
新增支持数据库自增 id;
新增对 DATE, TIME, DATETIME 及 DATE[], OBJECT[], ARRAY[] 等对应数组的类型校验;
完善远程函数的环境变量,方便做更细致的操作;
APIJSONBoot 新增代理接口,支持前端任意跨域;
APIJSONBoot 新增查询 Swagger 文档的示例接口;
解决远程函数对比版本错误;
解决多表 JOIN,生成的 SQL 未按 join 参数顺序导致乱序问题 - 感谢 @zhoulingfengofcd 的贡献 ;
Operation,RequestRole 和正则匹配 COMPILE_MAP 中 key 强制名称大写;
Parser.noVerify 改成 needVerify;
删除已被废弃的 Operation;
删除废弃的大驼峰命名的校验类型;
删除多余的 APIJSONOracle 工程;
ORM 库包名 zuo.biao.apijson 重命名为 apijson,apijson.server 重命名为 apijson.orm;
完善操作参数的 Operation 的注释;
统一 pom.xml 中的 apijson-orm,apijson-framework,fastjson 依赖;
提升版本号为 4.0.0;
打包 apijson-orm-4.0.0.jar 和 apijson-framework-4.0.0.jar;
Android:
新增 UnitAuto 单元测试工具类 MethodUtil.kt;
APIJSONApp 和 APIJSONTest 适配全面屏;
APIJSONTest 修改文案 向上依赖 Rely 为 引用赋值 Reference;
迁移两个工具类至 util 包;
升级 SDK 版本至 29;
删除 APIJSONApp 和 APIJSONTest 的 APIJSONLibrary,用 gradle 依赖代替;
其它:
完善设计规范文档,新增存储过程、批量新增,@JSON 等;
首页 README 新增常见问题、贡献者等;
注意事项:
这个版本进行了大幅重构,大部分功能对前端调用无影响,但后端工程不兼容以前的版本。
如果已经使用过 3.9.0 或以下版本,则替换为 4.0.0 或以上版本后需要在自己业务工程内修改代码:
1. zuo.biao.apijson 重命名为 apijson;
2.apijson.server 重命名为 apijson.orm;
3.RemoteFunction 重命名为 AbstractFunctionParser;
4.Controller 重命名为 DemoController;
5.Parser, AbstractParser 中 noVerify 重命名为 needVerify,boolean 值 true 和 false 对换。
如果前端使用过 @ROLE: RequestRole 对应的非全大写值,可以改为全大写,或者后端统一转为全大写。
【质量】新增随机测试、增强子查询
Server:
允许非 GET 方法使用子查询,以便实现多对多关联操作;
解决子查询额外加的 []/0 路径导致嵌套层级过深报错;
解决全局默认的 @Explain 或 @cache 放到子查询内导致 SQL 语法报错;
MySQL:
更新表,新增随机参数配置 Random 表;
PostgreSQL:
解决 Function 表数据中一个远程函数命名错误;
其它:
更新文档,包括新增比较运算的功能符说明等;
完善支持 Oracle 和 MS SQL Server 的分页等功能;新增多个功能
Server:
APIJSONORM 完善 Oracle 和 MS SQL Server 的分页、正则匹配、包含选项、子查询 、性能分析 等功能;
APIJSONORM 新增 SQL Server 的表和字段属性 系统表;
APIJSONORM 支持在 column 的 SQL 函数里传非字段参数,实现时间格式化等功能;
APIJSONORM 匹配条件范围新增支持 key{}:"=null" 和 key{}:"!=null" 两种 null 值判断;
APIJSONORM 新增 @ json 自动把字段值转为 JSON 格式;
APIJSONORM 新增判断数据库类型的方法;
APIJSONBoot 新增 Oracle 和 MS SQL Server 的驱动和配置;
APIJSONORM 解决非 DEBUG 模式下不能访问 Access 和 Request 表导致部分功能不可用;
APIJSONORM 解决获取表和字段属性因为默认的 schema 导致某些情况下出错;
APIJSONORM 匹配选项范围解决 key!{}:[] (空数组)查不到数据;
APIJSONORM 放开 DEBUG 模式下对系统表的 SQL 执行数量限制;
APIJSONORM 调试信息字段用 | 替代 / 来分割,避免 APIJSON ORM,APIAuto 等解析路径错误;
APIJSONORM 优化各种数据库的配置和判断;
APIJSONORM 的 postgresql-42.2.4.jar 替换为 42.2.5 的 Maven 依赖;
同步 APIJSONBoot 代码到 APIJSONFinal;
APIJSONBoot 尝试升级 SpringBoot 至 2.1.9 失败;
新增 oracle 驱动 jar 包;
打包 apijson-orm-3.8.6.jar;
MySQL:
更新表
PostgreSQL:
更新表
SQLServer:
新增配置和测试表文件
完善中文和英文文档;更新 PostgreSQL 的测试表
Server:
完善远程函数调用在函数格式错误时的报错信息;
非开放请求不允许传远程函数;
解决 Access 表里配置 name 和 alias 未成功实现表映射;
同步 APIJSONBoot 的 Application 代码到 APIJSONFinal;
MySQL:
更新表
PostgreSQL:
更新表
文档:
完善 判断是否存在 EXISTS 和 子查询 Subquery 的说明;
解决英文文档的一些文案和格式问题;
同步 APIJSONBoot 的代码到 APIJSONFinal
Server:
解决 APIJSONFinal 缺 libs 目录及相关 jar 包;
同步 APIJSONBoot 的代码到 APIJSONFinal;
新增多表关联操作的事务处理;完善 JFinal 的 Demo
Server:
新增支持多表关联操作的事务处理;
RemoteFunction 内强制校验远程函数必须符合 Function 表的配置;
Function 表新增 methods,tag,version 用于限制远程函数的使用范围;
非 DEBUG 模式下禁用 @ explain;
非 DEBUG 模式下不允许访问字段 debug 为 0 的表;
APIJSONBoot 升级 fastjson 版本,纠正版本号;
APIJSONFinal 与 APIJSONBoot 同步代码和依赖;
解决已执行 SQL 数量统计错误;
解决 DemoFunction 在 Function 表的 version 为 null 时测试不通过;
解决 DemoFunction.getFunctionCall 参数 arguments 为 null 时拼接错误;
优化代码;
废弃 @ correct;
ORM 升级版本为 3.7.0 并打新的 jar 包;
MySQL:
更新表;
文档:
完善对首页简介及通过用文档的英文翻译,感谢 @ruoranw 的贡献;
新增支持热更新 请求校验 和 权限校验
Server:
新增支持热更新 远程函数、请求校验、权限校验 的配置,通过调用新增的 /reload 接口来实现;
AbstractSQLConfig.Callback 新增 database 和 schema 参数来区分同名表;
解决 JOIN 副表有 DISTINCT 时外层 SELECT 字段出现多余的 DISTINCT 导致语法错误;
解决 JOIN 主表和副表重名导致语法错误,通过给副表加 AS 别名来实现;
调整 Join 类的 表名 和 请求对象 分别对应的 变量名,避免和其它类不一致导致误解;
打包 apijson-orm-3.6.5.jar;
MySQL:
更新表,并把单个表文件都放到 single 目录,避免和 sys.sql 一起导入报错;
新增支持去重关键词 DISTINCT
Server:
新增支持去重关键词 DISTINCT,例如 "@column": "DISTINCT momentId;count(DISTINCT userId)";
升级 mysql-connector-java 驱动,兼容 MySQL 8;
解决 Oracle 版 oracle jdbc 依赖下载不了,注释报错且未用上的方法;
解决 pom.xml有可能出现的错误;- 感谢 @vincentCheng 的贡献
完善详细的说明文档,修正错误;- 感谢 @vincentCheng 的贡献
打包 apijson-orm-3.6.0.jar;
MySQL:
更新表;
Android:
完善 Java 和 Kotlin 测试解析 Response JSON 的代码;
文档:
更新说明文档;