Roadmap 路线图:更新假删除、WITH AS 等进度,感谢 cloudAndMonkey, ifooling 的贡献

https://github.com/Tencent/APIJSON/blob/master/Roadmap.md
This commit is contained in:
TommyLemon 2023-01-06 23:34:50 +08:00 committed by GitHub
parent 473bbef89c
commit 65c305363c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -185,41 +185,50 @@ https://github.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/
可以配置两条不同规则,用不同的 tag 对应使用不同的条件。 <br /> 可以配置两条不同规则,用不同的 tag 对应使用不同的条件。 <br />
<br /> <br />
method: DELETE <br /> method: DELETE <br />
通过 id 删除 <br />
通过 id 删除
``` ```
tag: Comment-by-id // 当然写成 Comment:id 等其它任何不符合表名格式的名称都可 tag: Comment-by-id // 当然写成 Comment:id 等其它任何不符合表名格式的名称都可
structure: ... "MUST":"id" ... structure: ... "MUST":"id" ...
``` ```
<br /> <br />
通过 date 条件删除 <br />
通过 date 条件删除
``` ```
tag: Comment-by-date tag: Comment-by-date
structure: ... "MUST":"date" ... structure: ... "MUST":"date" ...
``` ```
<br /> <br />
如果想只配置一条规则,则 Operation 加上 AT_LEAST_ONE/ANY_ONE ,然后配置 <br /> 如果想只配置一条规则,则 Operation 加上 AT_LEAST_ONE/ANY_ONE ,然后配置
``` ```
tag: Comment tag: Comment
structure: ... "AT_LEAST_ONE":"id,date" ... // 至少传其中一个 structure: ... "AT_LEAST_ONE":"id,date" ... // 至少传其中一个
``` ```
<br />
``` ```
tag: Comment tag: Comment
structure: ... "ANY_ONE":"id,date" ... // 必须传其中一个,不能同时传 2 个以上 structure: ... "ANY_ONE":"id,date" ... // 必须传其中一个,不能同时传 2 个以上
``` ```
<br /> <br />
AT_LEAST_ONE/ANY_ONE 其中一个也可以通过扩展 MUST 来实现(目前看这种方式更好) <br /> AT_LEAST_ONE/ANY_ONE 其中一个也可以通过扩展 MUST 来实现(目前看这种方式更好) <br />
"MUST":"id | date,其它" 通过 | 或来表示其中任何一个,注意左右一定要各有一个空格,因为可能有 "name|$" "id|{}" 等包含 "|" 的 key <br /> "MUST":"id | date,其它" 通过 | 或来表示其中任何一个,注意左右一定要各有一个空格,因为可能有 "name|$" "id|{}" 等包含 "|" 的 key <br />
https://github.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/orm/Operation.java https://github.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/orm/Operation.java
<br /> <br />
还可以设置更复杂的表达方式 还可以设置更复杂的表达方式
``` ```
"MUST":"1:id | date,其它" // id, date 必须传其中一个,且不能多传 <br /> "MUST":"1:id | date,其它" // id, date 必须传其中一个,且不能多传 <br />
"MUST":">=2:id | momentId|{} | date>=,其它" // id, momentId|{}, date>= 必须至少其中 2 个 "MUST":">=2:id | momentId|{} | date>=,其它" // id, momentId|{}, date>= 必须至少其中 2 个
"MUST":"2+:id | momentId|{} | date>=,其它" // id, momentId|{}, date>= 必须至少其中 2 个,替代 >= 2更方便解析并且不用考虑 >1, != 2 等其它各种不等式 "MUST":"2+:id | momentId|{} | date>=,其它" // id, momentId|{}, date>= 必须至少其中 2 个,替代 >= 2更方便解析并且不用考虑 >1, != 2 等其它各种不等式
"MUST":"2-:id | momentId|{} | date>=,其它" // id, momentId|{}, date>= 最多传其中 2 个,替代 <= 2 "MUST":"2-:id | momentId|{} | date>=,其它" // id, momentId|{}, date>= 最多传其中 2 个,替代 <= 2
``` ```
<br /> <br />
这样的话就不用加 Operation 了,不过 AbstractVerifier 仍然要处理下 REFUSE 和 MUST 的互斥关系 <br /> 这样的话就不用加 Operation 了,不过 AbstractVerifier 仍然要处理下 REFUSE 和 MUST 的互斥关系 <br />
https://github.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/orm/AbstractVerifier.java#L1012-L1042 https://github.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/orm/AbstractVerifier.java#L1012-L1042