Commit Graph

230 Commits

Author SHA1 Message Date
TommyLemon
01410e2056
Merge pull request #387 from weiwei162/patch-1
fix #362
2022-04-22 22:14:43 +08:00
TommyLemon
30bbea94ac 优化角色权限、参数校验、远程函数的初始化;解决 format: true 在 Log.DEBUG 时也不返回 SQL、时间等调试信息;升级自身版本为 5.0.5; 2022-04-18 01:10:36 +08:00
weiwei162
d868d8e6fd
fix #362
支持PUT请求修改json/jsonb类型字段
2022-04-15 18:12:32 +08:00
TommyLemon
e609c8682c 解决关闭权限校验时 POST 请求传 userId 无效,加强对 POST 请求内字段格式的校验 2022-04-05 16:56:48 +08:00
TommyLemon
d803766fc4 升级自身, fastjson 版本分别为 5.0.0, 1.2.79 2022-03-27 22:50:21 +08:00
TommyLemon
d7c3115540 拼错单词 globle 纠正为 global 2022-03-27 20:34:02 +08:00
TommyLemon
1e5e587eaa 新增支持 @having:"match(arg0..)AGAINST(..)%2=1" 全文检索等函数后带数学表达式;对 key{}:">0;length(key)<=5" 新增支持部分为 RAW SQL;禁止 @having:"fun(arg0..):alias" 这样使用别名 2022-03-27 06:32:20 +08:00
TommyLemon
5340749bea 对 @having:"表达式" 和 key{}:"表达式" 新增支持单引号、反引号、各种关键词等;解决当 idKey 和 idInKey 一样时重复拼接条件 2022-03-27 05:47:00 +08:00
TommyLemon
46ccadec08 权限控制:分拆对角色的校验的代码为多个方法,方便灵活重写部分代码 2022-03-27 02:42:33 +08:00
TommyLemon
544a869416 预估容量新增对 HAVING 聚合函数的处理;优化代码 2022-03-27 02:39:36 +08:00
TommyLemon
2433f3b50f 完善对 id, id{}, userId, userId{} 的条件强制前置 AND 处理以及 @combine 不允许设置的校验,避免 id! | id 这种重复字符绕过校验 2022-03-27 02:38:47 +08:00
TommyLemon
b881541295 优化代码,去除不必要的 synchonized 2022-03-26 23:56:50 +08:00
TommyLemon
b248c69888 优化 @combine 对应的代码,默认 combine 为逻辑运算模板,原来的 combine 重命名为 combineMap,combineExpression 重命名为 combine 2022-03-26 23:56:23 +08:00
TommyLemon
12738bfb6b 解决 JOIN ON 中用 @combine 等情况下预编译值与 SQL 中 ? 占位符顺序对不上导致的异常 2022-03-21 00:46:20 +08:00
TommyLemon
9776408d63 @having 支持复杂条件组合,且新增 @having& 简化 AND 连接的写法 2022-03-21 00:26:48 +08:00
TommyLemon
a3d9c90a8d 包含选项范围新增支持传路径,例如 key<>:{ path: "$", value:82001 } 2022-03-21 00:26:22 +08:00
TommyLemon
fca75602b0 新增关于分页查总数时 @column:"max(id)" 这种聚合函数的优化注释 2022-03-14 01:59:47 +08:00
TommyLemon
c39cd1ec7c 新增数组关键词 compat 解决对聚合函数字段通过 query:2 分页查总数返回值错误 2022-03-14 01:55:32 +08:00
TommyLemon
38c19975ea * CROSS JOIN 允许没有 JOIN ON 引用赋值关联条件;默认禁用 JOIN ON 复杂关联方式 2022-03-14 00:07:07 +08:00
TommyLemon
96ee9dd23c LIKE: 支持非 JOIN ON 引用赋值也能用 key%$:value 格式,并且给 key%$:"%" 中的特殊符号转义 2022-03-13 23:52:29 +08:00
TommyLemon
29d8d1ef1f JOIN ON 及普通条件新增支持在 key$:value 的 key 中定制占位符 %, _ 与 value 的拼接方式 2022-03-13 21:50:57 +08:00
TommyLemon
895917ba98 JOIN 默认禁用 ! 非逻辑符和复杂关联方式 2022-03-07 00:51:24 +08:00
TommyLemon
0dc96b4681 JOIN ON 新增支持比较运算符 >, <, >=, <= 和字符匹配 $ LIKE, ~ REGEXP 2022-03-07 00:48:54 +08:00
TommyLemon
0063721354 JOIN ON 新增支持 {} IN 和 <> json_contains 两种关联方式 2022-03-06 21:57:26 +08:00
TommyLemon
3ea3e61215 优化 where 和 JOIN 解析代码 2022-03-06 20:53:29 +08:00
TommyLemon
cf7bdd74e4 @combine:value 复杂条件组合:解决 key! 报错 2022-03-06 20:04:26 +08:00
TommyLemon
bff0d44c35 @combine:value 复杂条件组合:解决最终条件丢失 id, id{},解决可以通过 !id, !id{} 绕过权限校验 2022-03-06 19:41:25 +08:00
TommyLemon
4cf7d985a5 条件组合:@combine:value 中的 value 支持非逻辑符 ! ,解决不允许连续左括号 (( 2022-03-06 17:23:10 +08:00
TommyLemon
66000f747f 调整条件键值对的默认最大数量 2022-03-06 04:42:04 +08:00
TommyLemon
795c8e9ccb 条件组合:限制 @combine:value 中的 value 的括号嵌套深度、key 数量、key 重复次数等 2022-03-06 04:38:35 +08:00
TommyLemon
d29d079ab8 条件组合:解决 @combine:"(date> | tag&$) & name*~" 解析异常,解决 @combine:"id | userId{}" 可绕过权限控制 2022-03-06 03:27:39 +08:00
TommyLemon
2cc13dab41 条件组合:解决 @combine:"name*~,tag&$" 解析异常,解决 @combine:"name*~ | tag&$" 这种最后没有括号的解析后缺少最后的条件 2022-03-06 02:41:09 +08:00
TommyLemon
36a5612f86 新增支持 NULL 值 @null:"tag" 和类型转换 @cast:"date:DATE" 2022-03-05 21:11:23 +08:00
TommyLemon
9d2c95e065 新增提问注意事项 2022-03-01 20:30:24 +08:00
TommyLemon
f7b82fd909 & INNER JOIN 支持单独设置 JOIN 语句中的字段、条件、分组、聚合、排序等
和 < LEFT JOIN, > RIGHT JOIN 一样,例如   "join": { "&/User/id": { "id>": 82001, "@order": "id+" } }
2022-02-27 04:17:05 +08:00
TommyLemon
5e709edcff JOIN ON 支持带非引用赋值关联的普通条件 2022-02-27 03:05:08 +08:00
TommyLemon
dda1120c5d JOIN 支持多个字段关联及引用赋值 2022-02-27 02:31:16 +08:00
TommyLemon
2da22e6185 提升版本号为 4.9.0 2022-02-06 21:08:59 +08:00
TommyLemon
a3cd7729c1 Merge branch 'master' of https://github.com/Tencent/APIJSON
* 'master' of https://github.com/Tencent/APIJSON:
  Update AbstractSQLExecutor.java
  Update AbstractSQLExecutor.java
  Update AbstractSQLExecutor.java
2022-01-17 02:08:44 +08:00
TommyLemon
bb58a25354 调试时间字段新增 parse 和 sql 两个时长,例如 "time:start|duration|end|parse|sql": "1641751048573|145|1641751048718|50|95" 2022-01-17 00:39:41 +08:00
chenyanlann
dae5ac9709
Update AbstractSQLExecutor.java 2022-01-12 00:00:46 +08:00
chenyanlann
8d16e66b76
Update AbstractSQLExecutor.java
fix code format
2022-01-11 21:21:42 +08:00
chenyanlann
27d7e01548
Update AbstractSQLExecutor.java
fix code format
2022-01-11 20:30:55 +08:00
TommyLemon
9f928b4a63
Merge pull request #353 from chenyanlann/master
Add:ORM's support for Hive
2022-01-03 00:50:34 +08:00
TommyLemon
5d59b35292 优化 JOIN 副表解析结果集 ResultSet 的性能(减少同副表字段的重复逻辑) 2022-01-03 00:48:35 +08:00
TommyLemon
61883bc24b 优化 Response JSON 中的 debug:info|help, trace:stack 等调试字段及相关提示语 2022-01-01 04:18:29 +08:00
TommyLemon
a8bad69e00 SQL JOIN:解决副表除了引用赋值键值对还有其它条件键值对时不能命中缓存,导致 一对多、多对多副表数据重复 以及 一对一、多对一 查询性能问题 2022-01-01 04:16:18 +08:00
chenyanlann
ed05ae37af Add:ORM's support for Hive 2021-12-31 17:53:06 +08:00
TommyLemon
00dae1b6bf 解决 JOIN 副表包含 SQL 函数时没有返回 SQL 函数的执行结果以及未用上 SQL 缓存导致冗余 SQL 查询 #341;提升 JOIN 封装结果的性能 2021-12-07 03:49:49 +08:00
TommyLemon
6023bc0fba 解决某个字段值为 null 导致中断后续正常返回值;解决 LEFT/RIGHT JOIN 副表关联主表外键的字段取别名导致 SQL 报错 2021-12-05 01:24:56 +08:00
TommyLemon
c397c82584 优化报错提示,引导用户自行解决及提交问题;解决 AbstractVerifier.verifyAccess 只允许 Number 类型的 id,并优化变量名; 2021-11-11 23:01:35 +08:00
TommyLemon
914e22dc5e 报错信息新增搜索链接及带系统信息的提交问题模板 2021-11-11 19:57:36 +08:00
TommyLemon
0ca17e631f 删除多余且未实际用上的的 Response.java 2021-10-25 23:06:51 +08:00
TommyLemon
8b00c69caa 新增支持 CASE WHEN,例如 (CASE WHEN sex * 1 = 0 THEN '男' WHEN sex >= 1 THEN '女' ELSE '其它' END);解决通过 _key 绕过隐藏字段校验 2021-10-25 18:50:50 +08:00
TommyLemon
b1522c6e7b 新增支持 @column:"cast(date AS TIME)" 这种在函数内 key 与关键词等组合的格式 2021-10-25 18:07:30 +08:00
TommyLemon
ad412fc4fe 新增支持 @column:"key" 反引号指定字段名 2021-10-25 17:25:27 +08:00
TommyLemon
bac5eab40d AbstractSQLConfig.preparedValueList 修饰符改为 protected 方便子类重写来实现兼容 Oracle DATETIME,TIMESTAMP 等日期时间类型,对应 POST/PUT to_date(?,'yyyy-mm-dd hh24:mi:ss') 2021-10-25 16:41:14 +08:00
TommyLemon
5a2ab0f2bc AbstractSQLConfig.getValue 修饰符 private 改为 protected 方便子类重写来实现兼容 Oracle DATETIME 等类型,对应 POST/PUT to_date(?,'yyyy-mm-dd hh24:mi:ss') 2021-10-25 16:05:11 +08:00
TommyLemon
d662ca3f35 将隐藏字段功能单独抽取方法 isHideColumn,方便重写来自定义 2021-10-25 16:02:24 +08:00
TommyLemon
08ecf170fa Merge branch 'master' of https://github.com/Tencent/APIJSON
* 'master' of https://github.com/Tencent/APIJSON:
  Update README-English.md
  Update README.md
  list类型请求参数通过put请求到远程函数后丢失的bug
2021-10-25 14:12:03 +08:00
TommyLemon
3868e8e308 解决校验 CIRCLE 角色时没有算当前用户 2021-10-25 14:11:44 +08:00
WaizLee
52a2b64e28
list类型请求参数通过put请求到远程函数后丢失的bug 2021-10-18 14:38:12 +08:00
TommyLemon
08780c77d0
优化代码 2021-09-30 14:06:33 +08:00
tianzhenyu
0ca192ab5d fix PG的重复设置事务等级的bug 2021-09-28 16:35:25 +08:00
tianzhenyu
d6cb2e14fb fix PG的重复设置事务等级的bug 2021-09-28 16:30:39 +08:00
TommyLemon
bbf0fc33a9 前端传 SQL 关键词 OVER 和 AGAINST 去掉多余的空格 2021-09-28 02:14:26 +08:00
TommyLemon
8d780ddcb0 解决表对象中的子表对象数据总是一样以及在 Table[]:{ Table:{ ChildTable:{} } } 情况下只有首个 Table 里返回了 ChildTable 2021-09-27 15:20:33 +08:00
TommyLemon
ed036ef025 优化 Table[]:{ Table:{} } 这种单表数组的查询性能 2021-09-27 00:40:41 +08:00
TommyLemon
47961e3ee4 Parser 移除没必要的方法 parseCorrectResponse 2021-09-26 23:57:11 +08:00
TommyLemon
5c682cbf34 重构 enum RequestRole 为 String 方便用户自定义扩展;删除部分已废弃的方法 2021-09-25 00:58:30 +08:00
TommyLemon
d46d1f3216 RAW_MAP 默认支持 与或非 和 IS NULL 等关键词 2021-09-24 04:06:44 +08:00
TommyLemon
2107040c96 优化名车和空格 2021-09-24 03:35:45 +08:00
TommyLemon
d013830bbe 格式化代码 2021-09-24 03:32:48 +08:00
TommyLemon
061507810b FunctionsAndRaws 代码移回 AbstractSQLConfig 兼容现有用户代码;完成 PostgreSQL 的窗口函数;解决 PUT "blance+": 1 未加到 update set 导致报错;解决 @column 在 OVER, MATCH 等函数内部分字段解析出错以及可能的 SQL 注入 2021-09-24 03:29:49 +08:00
TommyLemon
532054a6a6
Merge pull request #305 from qiujunlin/master
add orm support 修改@column中的解析代码,使之支持字符串
2021-09-23 19:48:54 +08:00
TommyLemon
77c375b20d 完善请求参数在各种 method 及 tag 下的自动补全;允许 GETS 通过 key[]:{} 来查多条记录 2021-09-23 18:18:47 +08:00
TommyLemon
3a89b6043f Merge branch 'master' of https://github.com/Tencent/APIJSON
* 'master' of https://github.com/Tencent/APIJSON: (44 commits)
  生态周边项目新增 apijson-practice,感谢贡献
  1.根据方法不同拼接聚合语句 2.修改Oracle分组统计语句
  update a problem about oracle
  add delete and update
  Update AbstractObjectParser.java
  Modified:修复put请求key的bug
  使用登记 新增 腾讯科技有限公司
  用户登记新增 腾讯科技有限公司
  用户登记新增 腾讯科技有限公司
  Update README.md
  commit test
  新增包括 1 个腾讯工程师在内的 8 个贡献者,感谢大家的贡献
  新增包括 1 个腾讯工程师在内的 8 个贡献者,感谢大家的贡献
  新增包括 1 个腾讯工程师在内的 8 个贡献者,感谢大家的贡献
  updated users(Tencent)
  Update users(Tencent) and contributors(from Tencent, Zhihu, YTO Express)
  update users(companies) and contributors
  简介新增 "零代码实时满足千变万化的各种新增和变更需求"
  Update CONTRIBUTING.md
  Update CONTRIBUTING.md
  ...
2021-09-19 22:43:01 +08:00
TommyLemon
ac9dc853f3 抽取根据 tag 自动包装请求结构的方法为 wrapRequest 2021-09-19 22:42:58 +08:00
lixin
60a305c9aa 1.根据方法不同拼接聚合语句
2.修改Oracle分组统计语句
2021-09-16 12:58:45 +08:00
qiujunlin
e2cfc82db8 update a problem about oracle 2021-09-13 14:03:10 +08:00
qiujunlin
59525679b8 add delete and update 2021-09-10 11:05:56 +08:00
chenyanlann
4beced4624
Update AbstractObjectParser.java
简化字符串判断
2021-09-08 19:23:48 +08:00
chenyanlann
07bc89925d Modified:修复put请求key的bug 2021-09-07 21:32:29 +08:00
qiujunlin
01b310a3e3 add orm support 2021-09-03 02:18:02 +08:00
qiujunlin
6981010a5e update clickhouse gettable 2021-08-05 22:12:13 +08:00
TommyLemon
95ca50353a
Merge pull request #294 from yeyuezhishou/user/libin/dev20210802
perft:优化
2021-08-02 10:39:32 +08:00
bin.li
f6c3ed0b26 perft:优化
1:解决column加了函数(例如date_format)后,导致表达式超过50字符,改成100字符
2021-08-02 10:17:16 +08:00
chenyanlann
9b5f3f2597 Add:ORM's support for ClickHouse 2021-08-01 20:11:14 +08:00
TommyLemon
af9a1fc0c1 升级版本号为 4.7.2 2021-08-01 01:47:10 +08:00
TommyLemon
646bed4186 解决操作符 UNIQUE 校验不允许重复失效 2021-08-01 01:19:29 +08:00
TommyLemon
3ccd9674ce 解决远程函数拿不到有效的当前对象,导致校验参数容易放行等问题 2021-08-01 01:02:11 +08:00
TommyLemon
042716d3e2 删除多余的文件 2021-07-31 03:22:23 +08:00
TommyLemon
2fc8526863 升级版本为 4.7.1;优化代码 2021-07-31 02:55:00 +08:00
bin.li
914b50af11 fix:bug修复
1:修复List集合使用remove方法引发ConcurrentModificationException
2:修复remove RAW_MAP字段后,引发自定义column列@raw报错
2021-07-30 17:38:37 +08:00
iceewei
657bc89707 获取连接增加datasource参数 && 回包里移除@datasource 2021-06-29 11:17:49 +08:00
iceewei
f4e5ea487e 获取连接增加datasource参数 && 回包里移除@datasource 2021-06-29 11:06:21 +08:00
iceewei
cd83f506f2 获取连接的key增加datasource维度 2021-06-28 14:56:01 +08:00
TommyLemon
817c2365bd
格式化部分代码 2021-06-21 15:58:50 +08:00
TommyLemon
2dfe8eda0a
欢迎 AbstractSQLConfig 并应用关键更改
https://github.com/Tencent/APIJSON/pull/253
2021-06-21 15:51:02 +08:00
JackJay
550dfe9d26 fix: 修改分页查询query=2,且@raw关键字执行SQL函数date_format的Bug
当分页查询query=2,且@raw关键字执行SQL函数date_format时,格式化字符串(例:%Y-%m-%d %H:%i:%s)中含有冒号会导致解析出错

-在getColumnString方法中,Method为HEAD,HEADS循环拼接SQL时,排除RAW_MAP中包含的值,使SQL拼接成功,执行数量查询。
2021-06-17 18:50:31 +08:00