在GETS请求中使用@combine时得到了这样的提示: ` "msg": "StandardAdvice:{} 里的 @combine:value 不合法!DELETE,GETS,HEADS 请求不允许传 @combine:value !"` 查代码发现,这个检查逻辑是硬编码在AbstractSQLConfig类中的。 为什么在这些类型的请求中限制@combine的使用呢?
Activity
[-]combine的限制[/-][+]为什么限制在GETS中使用@combine[/+]TommyLemon commentedon Jul 22, 2022
防止前端传参越权操作,例如把后端设置的条件 AND 连接改为 OR 连接
aldag commentedon Jul 22, 2022
有些业务场景需要OR连接的查询。在AbstractSQLConfig做检查,后端也无法添加@combine,检查点能否前移呢?
TommyLemon commentedon Jul 22, 2022
可以的,把 AbstractSQLConfig 里的检查移到 AbstractVerifier,判断 JSONRequest.KEY_COMBINE.equals(rk) 就抛异常

https://github.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/orm/AbstractVerifier.java#L1006
这样就可以实现前端不能传,但后端能在 Request 表指定 @combine 了
TommyLemon commentedon Feb 16, 2023
@aldag
6.0.0 已支持后端在 Request 表中为 GETS/PUT/DELTE 的请求配置 @combine,感谢 @cloudAndMonkey 的贡献
#493