Releases: Tencent/APIJSON
重构请求参数校验;完善文档;
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 依赖);
更新文档;
升级版本为 4.2.3
fastjson 升到 1.2.73;删除 APIJSONFramework;
APIJSONORM:
fastjson 升级到最新建议稳定版 1.2.73;
自身版本提高到 4.2.1;
APIJSONFramework:
删除,只用 https://github.com/APIJSON/apijson-framework
调整项目结构;解决编译错误
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:
新增配置和测试表文件