diff --git a/Roadmap.md b/Roadmap.md index 6084841b..c655f5fa 100644 --- a/Roadmap.md +++ b/Roadmap.md @@ -185,41 +185,50 @@ https://github.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/ 可以配置两条不同规则,用不同的 tag 对应使用不同的条件。

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