Skip to content

Commit 2d28ea7

Browse files
committed
Java:APIJSONFinal 升级 APIJSON, apijson-framework, apijson-column 的 jar 版本为 4.8.0
1 parent 0037e3a commit 2d28ea7

File tree

11 files changed

+71
-22
lines changed

11 files changed

+71
-22
lines changed
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

APIJSON-Java-Server/APIJSONFinal/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
</dependency>
2424

2525
<!-- 可使用 libs 目录的 apijson-orm.jar 和 apijson-framework.jar 来替代,两种方式二选一 <<<<<<<<<< -->
26-
<dependency>
26+
<!-- <dependency>
2727
<groupId>com.github.Tencent</groupId>
2828
<artifactId>APIJSON</artifactId>
2929
<version>4.7.2</version>
@@ -32,7 +32,7 @@
3232
<groupId>com.github.APIJSON</groupId>
3333
<artifactId>apijson-framework</artifactId>
3434
<version>4.7.2</version>
35-
</dependency>
35+
</dependency> -->
3636
<!-- 可使用 libs 目录的 apijson-orm.jar 和 apijson-framework.jar 来替代,两种方式二选一 >>>>>>>>>> -->
3737

3838
<!-- 需要用的数据库 JDBC 驱动 -->

APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoFunctionParser.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,18 @@
1414

1515
package apijson.demo;
1616

17-
import com.alibaba.fastjson.JSONArray;
18-
import com.alibaba.fastjson.JSONObject;
19-
2017
import java.util.ArrayList;
2118
import java.util.Arrays;
2219
import java.util.Collection;
2320

2421
import javax.servlet.http.HttpSession;
2522

23+
import com.alibaba.fastjson.JSONArray;
24+
import com.alibaba.fastjson.JSONObject;
25+
2626
import apijson.JSONResponse;
2727
import apijson.NotNull;
2828
import apijson.RequestMethod;
29-
import apijson.RequestRole;
3029
import apijson.StringUtil;
3130
import apijson.framework.APIJSONFunctionParser;
3231
import apijson.orm.JSONRequest;
@@ -212,8 +211,8 @@ public JSONArray getIdList(@NotNull JSONObject current) {
212211
*/
213212
public Object verifyAccess(@NotNull JSONObject current) throws Exception {
214213
long userId = current.getLongValue(JSONRequest.KEY_USER_ID);
215-
RequestRole role = RequestRole.get(current.getString(JSONRequest.KEY_ROLE));
216-
if (role == RequestRole.OWNER && userId != DemoVerifier.getVisitorId(getSession())) {
214+
String role = current.getString(JSONRequest.KEY_ROLE);
215+
if (role == apijson.orm.AbstractVerifier.OWNER && userId != DemoVerifier.getVisitorId(getSession())) {
217216
throw new IllegalAccessException("登录用户与角色OWNER不匹配!");
218217
}
219218
return null;

APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoSQLConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ public AbstractSQLConfig getSQLConfig(RequestMethod method, String database, Str
7070
// }
7171

7272
@Override
73-
public String getUserIdKey(String database, String schema, String table) {
73+
public String getUserIdKey(String database, String schema, String datasource, String table) {
7474
return USER_.equals(table) || PRIVACY_.equals(table) ? ID : USER_ID; // id / userId
7575
}
7676

APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/model/Privacy.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414

1515
package apijson.demo.model;
1616

17-
import static apijson.RequestRole.ADMIN;
18-
import static apijson.RequestRole.OWNER;
19-
import static apijson.RequestRole.UNKNOWN;
17+
import static apijson.orm.AbstractVerifier.ADMIN;
18+
import static apijson.orm.AbstractVerifier.OWNER;
19+
import static apijson.orm.AbstractVerifier.UNKNOWN;
2020

2121
import com.alibaba.fastjson.annotation.JSONField;
2222

APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/model/User.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
package apijson.demo.model;
1616

17-
import static apijson.RequestRole.ADMIN;
18-
import static apijson.RequestRole.UNKNOWN;
17+
import static apijson.orm.AbstractVerifier.ADMIN;
18+
import static apijson.orm.AbstractVerifier.UNKNOWN;
1919

2020
import java.util.List;
2121

APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/model/Verify.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@
1414

1515
package apijson.demo.model;
1616

17-
import static apijson.RequestRole.ADMIN;
18-
import static apijson.RequestRole.CIRCLE;
19-
import static apijson.RequestRole.CONTACT;
20-
import static apijson.RequestRole.LOGIN;
21-
import static apijson.RequestRole.OWNER;
22-
import static apijson.RequestRole.UNKNOWN;
17+
import static apijson.orm.AbstractVerifier.ADMIN;
18+
import static apijson.orm.AbstractVerifier.CIRCLE;
19+
import static apijson.orm.AbstractVerifier.CONTACT;
20+
import static apijson.orm.AbstractVerifier.LOGIN;
21+
import static apijson.orm.AbstractVerifier.OWNER;
22+
import static apijson.orm.AbstractVerifier.UNKNOWN;
2323

2424
import apijson.MethodAccess;
2525
import apijson.framework.BaseModel;

APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/jfinal/DemoController.java

Lines changed: 52 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,15 @@
3333
import static apijson.framework.APIJSONConstant.VISITOR_;
3434
import static apijson.framework.APIJSONConstant.VISITOR_ID;
3535

36+
import java.io.UnsupportedEncodingException;
37+
import java.net.URL;
38+
import java.net.URLDecoder;
39+
import java.nio.charset.Charset;
3640
import java.rmi.ServerException;
41+
import java.util.Map;
42+
import java.util.Map.Entry;
3743
import java.util.Random;
44+
import java.util.Set;
3845
import java.util.concurrent.TimeoutException;
3946

4047
import javax.servlet.http.HttpSession;
@@ -61,6 +68,7 @@
6168
import apijson.framework.APIJSONController;
6269
import apijson.framework.APIJSONParser;
6370
import apijson.framework.BaseModel;
71+
import apijson.orm.AbstractParser;
6472
import apijson.orm.JSONRequest;
6573
import apijson.orm.Parser;
6674
import apijson.orm.exception.ConditionErrorException;
@@ -87,9 +95,49 @@ public Parser<Long> newParser(HttpSession session, RequestMethod method) {
8795
}
8896
return parser;
8997
}
90-
98+
99+
/**处理万能通用接口
100+
* @param method
101+
* @see https://github.com/Tencent/APIJSON/blob/master/Document.md#3.1
102+
*/
91103
public void parseAndResponse(RequestMethod method) {
92-
renderJson(newParser(getSession(), method).parse(HttpKit.readData(getRequest())));
104+
String tag = getPara();
105+
106+
if (StringUtil.isEmpty(tag, true) == false) {
107+
try {
108+
tag = URLDecoder.decode(tag, "UTF-8");
109+
} catch (Throwable e) {
110+
e.printStackTrace();
111+
}
112+
}
113+
114+
if (StringUtil.isEmpty(tag, true)) {
115+
// /get, /gets, /put 等万能通用接口
116+
renderJson(newParser(getSession(), method).parse(getRawData()));
117+
return;
118+
}
119+
120+
// /get/User, /gets/Moment[], /put/Comment:[] 等简版接口,APIJSON 4.8.0+ 可用,对不兼容的低版本需要注释以下代码
121+
JSONObject req = AbstractParser.wrapRequest(method, tag, JSON.parseObject(getRawData()), false);
122+
if (req == null) {
123+
req = new JSONObject(true);
124+
}
125+
126+
Map<String, String[]> paraMap = getParaMap();
127+
Set<Entry<String, String[]>> set = paraMap == null ? null : paraMap.entrySet();
128+
if (set != null) { // 最外层的全局参数
129+
for (Entry<String, String[]> entry : set) {
130+
String[] values = entry == null ? null : entry.getValue();
131+
String value = values == null || values.length <= 0 ? null : values[0];
132+
if (StringUtil.isEmpty(tag, false)) {
133+
continue;
134+
}
135+
136+
req.put(entry.getKey(), value);
137+
}
138+
}
139+
140+
renderJson(newParser(getSession(), method).parse(req));
93141
}
94142

95143
//通用接口,非事务型操作 和 简单事务型操作 都可通过这些接口自动化实现<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
@@ -157,6 +205,8 @@ public void delete() {
157205
parseAndResponse(DELETE);
158206
}
159207

208+
209+
160210
//通用接口,非事务型操作 和 简单事务型操作 都可通过这些接口自动化实现>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
161211

162212

0 commit comments

Comments
 (0)