From 65c305363c2e282eb14149c28e556f69f1b05a4a Mon Sep 17 00:00:00 2001
From: TommyLemon <1184482681@qq.com>
Date: Fri, 6 Jan 2023 23:34:50 +0800
Subject: [PATCH] =?UTF-8?q?Roadmap=20=E8=B7=AF=E7=BA=BF=E5=9B=BE=EF=BC=9A?=
=?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=81=87=E5=88=A0=E9=99=A4=E3=80=81WITH=20AS?=
=?UTF-8?q?=20=E7=AD=89=E8=BF=9B=E5=BA=A6=EF=BC=8C=E6=84=9F=E8=B0=A2=20clo?=
=?UTF-8?q?udAndMonkey,=20ifooling=20=E7=9A=84=E8=B4=A1=E7=8C=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
https://github.com/Tencent/APIJSON/blob/master/Roadmap.md
---
Roadmap.md | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
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