diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/pom.xml b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/pom.xml
index 6053ca80..b224f252 100755
--- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/pom.xml
+++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/pom.xml
@@ -4,7 +4,7 @@
4.0.0
apijson.boot
- apijson-boot
+ apijson-boot-multi-datasource
5.1.0
diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoController.java b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoController.java
index 12134bf2..895c3162 100644
--- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoController.java
@@ -228,12 +228,13 @@ public String delete(@RequestBody String request, HttpSession session) {
// 以上接口对应的简版接口,格式为 {method}/{tag}?format=true&@explain=true.. <<<<<<<<<<<<<<<<<<<<<<<<<
-
- /**增删改查统一入口,这个一个方法可替代以下 7 个方法,牺牲一些路由解析性能来提升一点开发效率
- * @param request 只用String,避免encode后未decode
+ /**增删改查统一接口,这个一个接口可替代 7 个万能通用接口,牺牲一些路由解析性能来提升一点开发效率
+ * @param method
+ * @param tag
+ * @param params
+ * @param request
* @param session
* @return
- * @see {@link RequestMethod#DELETE}
*/
@PostMapping("crud/{method}/{tag}") // 直接 {method}/{tag} 或 apijson/{method}/{tag} 会和内置网页的路由有冲突
@Override
diff --git a/APIJSON-Java-Server/APIJSONBoot/libs/apijson-column-1.2.0.jar b/APIJSON-Java-Server/APIJSONBoot/libs/apijson-column-1.2.2.jar
similarity index 64%
rename from APIJSON-Java-Server/APIJSONBoot/libs/apijson-column-1.2.0.jar
rename to APIJSON-Java-Server/APIJSONBoot/libs/apijson-column-1.2.2.jar
index 09fb1b5b..072102ff 100644
Binary files a/APIJSON-Java-Server/APIJSONBoot/libs/apijson-column-1.2.0.jar and b/APIJSON-Java-Server/APIJSONBoot/libs/apijson-column-1.2.2.jar differ
diff --git a/APIJSON-Java-Server/APIJSONBoot/libs/apijson-framework-5.0.0.jar b/APIJSON-Java-Server/APIJSONBoot/libs/apijson-framework-5.0.0.jar
deleted file mode 100644
index 11fcb90d..00000000
Binary files a/APIJSON-Java-Server/APIJSONBoot/libs/apijson-framework-5.0.0.jar and /dev/null differ
diff --git a/APIJSON-Java-Server/APIJSONBoot/libs/apijson-framework-5.1.0.jar b/APIJSON-Java-Server/APIJSONBoot/libs/apijson-framework-5.1.0.jar
new file mode 100644
index 00000000..c82bd678
Binary files /dev/null and b/APIJSON-Java-Server/APIJSONBoot/libs/apijson-framework-5.1.0.jar differ
diff --git a/APIJSON-Java-Server/APIJSONBoot/libs/apijson-orm-5.0.0.jar b/APIJSON-Java-Server/APIJSONBoot/libs/apijson-orm-5.0.0.jar
deleted file mode 100644
index 848d173b..00000000
Binary files a/APIJSON-Java-Server/APIJSONBoot/libs/apijson-orm-5.0.0.jar and /dev/null differ
diff --git a/APIJSON-Java-Server/APIJSONBoot/libs/apijson-orm-5.1.0.jar b/APIJSON-Java-Server/APIJSONBoot/libs/apijson-orm-5.1.0.jar
new file mode 100644
index 00000000..73a1fc97
Binary files /dev/null and b/APIJSON-Java-Server/APIJSONBoot/libs/apijson-orm-5.1.0.jar differ
diff --git a/APIJSON-Java-Server/APIJSONBoot/libs/unitauto-2.6.4.jar b/APIJSON-Java-Server/APIJSONBoot/libs/unitauto-2.6.4.jar
deleted file mode 100644
index 4bc8a8b3..00000000
Binary files a/APIJSON-Java-Server/APIJSONBoot/libs/unitauto-2.6.4.jar and /dev/null differ
diff --git a/APIJSON-Java-Server/APIJSONBoot/libs/unitauto-2.7.2.jar b/APIJSON-Java-Server/APIJSONBoot/libs/unitauto-2.7.2.jar
new file mode 100644
index 00000000..c654d2b1
Binary files /dev/null and b/APIJSON-Java-Server/APIJSONBoot/libs/unitauto-2.7.2.jar differ
diff --git a/APIJSON-Java-Server/APIJSONBoot/libs/unitauto-jar-2.6.4.jar b/APIJSON-Java-Server/APIJSONBoot/libs/unitauto-jar-2.7.2.jar
similarity index 92%
rename from APIJSON-Java-Server/APIJSONBoot/libs/unitauto-jar-2.6.4.jar
rename to APIJSON-Java-Server/APIJSONBoot/libs/unitauto-jar-2.7.2.jar
index 0d06df99..16266533 100644
Binary files a/APIJSON-Java-Server/APIJSONBoot/libs/unitauto-jar-2.6.4.jar and b/APIJSON-Java-Server/APIJSONBoot/libs/unitauto-jar-2.7.2.jar differ
diff --git a/APIJSON-Java-Server/APIJSONBoot/pom.xml b/APIJSON-Java-Server/APIJSONBoot/pom.xml
index 5eece566..6899bbc3 100755
--- a/APIJSON-Java-Server/APIJSONBoot/pom.xml
+++ b/APIJSON-Java-Server/APIJSONBoot/pom.xml
@@ -5,7 +5,7 @@
apijson.boot
apijson-boot
- 5.0.0
+ 5.1.0
APIJSONBoot
@@ -32,17 +32,16 @@
4.0.1
-
+
com.github.TommyLemon
unitauto-java
- 2.6.4
+ 2.7.2
com.github.TommyLemon
unitauto-jar
- 2.6.4
+ 2.7.2
io.github.classgraph
@@ -56,17 +55,17 @@
com.github.Tencent
APIJSON
- 5.0.0
+ 5.1.0
com.github.APIJSON
apijson-framework
- 5.0.0
+ 5.1.0
com.github.APIJSON
apijson-column
- 1.2.0
+ 1.2.2
diff --git a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/boot/DemoApplication.java b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/boot/DemoApplication.java
index 6ba1a0e2..f6254b22 100755
--- a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/boot/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/boot/DemoApplication.java
@@ -72,6 +72,23 @@
public class DemoApplication implements ApplicationContextAware, WebServerFactoryCustomizer {
private static final String TAG = "DemoApplication";
+ public static void main(String[] args) throws Exception {
+ SpringApplication.run(DemoApplication.class, args);
+
+ // FIXME 不要开放给项目组后端之外的任何人使用 UnitAuto(强制登录鉴权)!!!如果不需要单元测试则移除相关代码或 unitauto.Log.DEBUG = false;
+ // 上线生产环境前改为 false,可不输出 APIJSONORM 的日志 以及 SQLException 的原始(敏感)信息
+ unitauto.Log.DEBUG = Log.DEBUG = true;
+ APIJSONParser.IS_PRINT_BIG_LOG = true;
+ APIJSONApplication.init();
+ }
+
+ // SpringBoot 2.x 自定义端口方式
+ @Override
+ public void customize(ConfigurableServletWebServerFactory server) {
+ server.setPort(8080);
+ }
+
+
static {
// APIJSON 配置 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
@@ -81,7 +98,7 @@ public class DemoApplication implements ApplicationContextAware, WebServerFactor
COMPILE_MAP.put("ID_CARD", StringUtil.PATTERN_ID_CARD);
// 使用本项目的自定义处理类
- APIJSONApplication.DEFAULT_APIJSON_CREATOR = new APIJSONCreator() {
+ APIJSONApplication.DEFAULT_APIJSON_CREATOR = new APIJSONCreator() {
@Override
public Parser createParser() {
@@ -242,21 +259,6 @@ public boolean apply(Object object, String name, Object value) {
}
- public static void main(String[] args) throws Exception {
- SpringApplication.run(DemoApplication.class, args);
-
- // FIXME 不要开放给项目组后端之外的任何人使用 UnitAuto(强制登录鉴权)!!!如果不需要单元测试则移除相关代码或 unitauto.Log.DEBUG = false;
- // 上线生产环境前改为 false,可不输出 APIJSONORM 的日志 以及 SQLException 的原始(敏感)信息
- unitauto.Log.DEBUG = Log.DEBUG = true;
- APIJSONParser.IS_PRINT_BIG_LOG = true;
- APIJSONApplication.init();
- }
-
- // SpringBoot 2.x 自定义端口方式
- @Override
- public void customize(ConfigurableServletWebServerFactory server) {
- server.setPort(8080);
- }
// 全局 ApplicationContext 实例,方便 getBean 拿到 Spring/SpringBoot 注入的类实例
private static ApplicationContext APPLICATION_CONTEXT;
diff --git a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/boot/DemoController.java b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/boot/DemoController.java
index 0862f631..e6d70aa2 100644
--- a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/boot/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/boot/DemoController.java
@@ -101,7 +101,7 @@
@Service
@RestController
@RequestMapping("")
-public class DemoController extends APIJSONController {
+public class DemoController extends APIJSONController {
private static final String TAG = "DemoController";
// 可以更方便地通过日志排查错误
@@ -109,8 +109,23 @@ public class DemoController extends APIJSONController {
public String getRequestURL() {
return httpServletRequest.getRequestURL().toString();
}
+
- //通用接口,非事务型操作 和 简单事务型操作 都可通过这些接口自动化实现<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+ // 通用接口,非事务型操作 和 简单事务型操作 都可通过这些接口自动化实现 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+ /**增删改查统一入口,这个一个方法可替代以下 7 个方法,牺牲一些路由解析性能来提升一点开发效率
+ * @param method
+ * @param tag
+ * @param params
+ * @param request
+ * @param session
+ * @return
+ */
+ @PostMapping(value = "crud/{method}") // 直接 {method} 或 apijson/{method} 会和内置网页的路由有冲突
+ @Override
+ public String crud(@PathVariable String method, @RequestBody String request, HttpSession session) {
+ return super.crud(method, request, session);
+ }
/**获取
* @param request 只用String,避免encode后未decode
@@ -196,8 +211,23 @@ public String delete(@RequestBody String request, HttpSession session) {
return super.delete(request, session);
}
+ // 通用接口,非事务型操作 和 简单事务型操作 都可通过这些接口自动化实现 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- //以上接口对应的简版接口,格式为 {method}/{tag}?format=true&@explain=true.. <<<<<<<<<<<<<<<<<<<<<<<<<
+ // 以上接口对应的简版接口,格式为 {method}/{tag}?format=true&@explain=true.. <<<<<<<<<<<<<<<<<<<<<<<<<
+
+ /**增删改查统一接口,这个一个接口可替代 7 个万能通用接口,牺牲一些路由解析性能来提升一点开发效率
+ * @param method
+ * @param tag
+ * @param params
+ * @param request
+ * @param session
+ * @return
+ */
+ @PostMapping("crud/{method}/{tag}") // 直接 {method}/{tag} 或 apijson/{method}/{tag} 会和内置网页的路由有冲突
+ @Override
+ public String crudByTag(@PathVariable String method, @PathVariable String tag, @RequestParam Map params, @RequestBody String request, HttpSession session) {
+ return super.crudByTag(method, tag, params, request, session);
+ }
/**获取
* @param request 只用String,避免encode后未decode
@@ -283,7 +313,7 @@ public String deleteByTag(@PathVariable String tag, @RequestParam Map>>>>>>>>>>>>>>>>>>>>>>>>
+ // 以上接口对应的简版接口,格式为 {method}/{tag}?format=true&@explain=true.. >>>>>>>>>>>>>>>>>>>>>>>>>
@@ -1231,6 +1261,7 @@ else if (APIJSON_DELEGATE_ID.toLowerCase().equals(name.toLowerCase())) {
map.remove("$_type");
map.remove("$_except_headers");
map.remove("$_delegate_url");
+ map.remove("$_delegate_id");
Set> set = map == null ? null : map.entrySet();
diff --git a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoFunctionParser.java b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoFunctionParser.java
index f38fad9e..c2d75054 100644
--- a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoFunctionParser.java
+++ b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoFunctionParser.java
@@ -57,7 +57,9 @@ public Long getCurrentUserId(@NotNull JSONObject current) {
}
public List getCurrentUserIdAsList(@NotNull JSONObject current) {
- return Arrays.asList(DemoVerifier.getVisitorId(getSession()));
+ List list = new ArrayList<>(1);
+ list.add(DemoVerifier.getVisitorId(getSession()));
+ return list;
}
public List getCurrentContactIdList(@NotNull JSONObject current) {
@@ -235,17 +237,14 @@ public JSONArray getIdList(@NotNull JSONObject current) {
* @return
* @throws Exception
*/
- @Override
public Object verifyAccess(@NotNull JSONObject current) throws Exception {
long userId = current.getLongValue(JSONRequest.KEY_USER_ID);
String role = current.getString(JSONRequest.KEY_ROLE);
- if (AbstractVerifier.OWNER.equals(role) && userId != DemoVerifier.getVisitorId(getSession())) {
+ if (AbstractVerifier.OWNER.equals(role) && userId != (Long) DemoVerifier.getVisitorId(getSession())) {
throw new IllegalAccessException("登录用户与角色OWNER不匹配!");
}
return null;
}
-
-
}
\ No newline at end of file
diff --git a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoParser.java b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoParser.java
index 17453989..08103166 100644
--- a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoParser.java
+++ b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoParser.java
@@ -26,7 +26,7 @@
* 具体见 https://github.com/Tencent/APIJSON/issues/38
* @author Lemon
*/
-public class DemoParser extends APIJSONParser {
+public class DemoParser extends APIJSONParser {
public DemoParser() {
super();
diff --git a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoSQLConfig.java
index 6e32a689..42e05562 100755
--- a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -65,10 +65,10 @@ public DemoSQLConfig(RequestMethod method, String table) {
// TABLE_KEY_MAP.put(Privacy.class.getSimpleName(), "apijson_privacy");
//主键名映射
- SIMPLE_CALLBACK = new SimpleCallback() {
+ SIMPLE_CALLBACK = new SimpleCallback() {
@Override
- public AbstractSQLConfig getSQLConfig(RequestMethod method, String database, String schema, String table) {
+ public AbstractSQLConfig getSQLConfig(RequestMethod method, String database, String schema, String datasource, String table) {
return new DemoSQLConfig(method, table);
}
@@ -81,13 +81,13 @@ public AbstractSQLConfig getSQLConfig(RequestMethod method, String database, Str
// }
@Override
- public String getUserIdKey(String database, String schema,String datasource, String table) {
+ public String getUserIdKey(String database, String schema, String datasource, String table) {
return USER_.equals(table) || PRIVACY_.equals(table) ? ID : USER_ID; // id / userId
}
//取消注释来实现数据库自增 id
// @Override
- // public Object newId(RequestMethod method, String database, String schema, String datasource, String table) {
+ // public Long newId(RequestMethod method, String database, String schema, String datasource, String table) {
// return null; // return null 则不生成 id,一般用于数据库自增 id
// }
diff --git a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoVerifier.java b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoVerifier.java
index 25493a6d..97b39129 100644
--- a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoVerifier.java
+++ b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoVerifier.java
@@ -21,7 +21,7 @@
* 具体见 https://github.com/Tencent/APIJSON/issues/12
* @author Lemon
*/
-public class DemoVerifier extends APIJSONVerifier {
+public class DemoVerifier extends APIJSONVerifier {
public static final String TAG = "DemoVerifier";
// 重写方法来自定义字段名等
diff --git a/APIJSON-Java-Server/APIJSONDemo-Druid/pom.xml b/APIJSON-Java-Server/APIJSONDemo-Druid/pom.xml
index ad4a2c20..4841a50a 100755
--- a/APIJSON-Java-Server/APIJSONDemo-Druid/pom.xml
+++ b/APIJSON-Java-Server/APIJSONDemo-Druid/pom.xml
@@ -5,7 +5,7 @@
apijson.demo
apijson-demo-druid
- 5.0.0
+ 5.1.0
jar
APIJSONDemo-Druid
@@ -22,7 +22,7 @@
com.github.APIJSON
apijson-framework
- LATEST
+ 5.1.0
@@ -83,6 +83,15 @@
+
+
+ jitpack.io
+ https://jitpack.io
+
+ true
+
+
+
spring-snapshots
https://repo.spring.io/snapshot
@@ -94,10 +103,6 @@
spring-milestones
https://repo.spring.io/milestone
-
- jitpack.io
- https://jitpack.io
-
diff --git a/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoApplication.java
index 8ddb8ad4..e0aa2908 100755
--- a/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoApplication.java
@@ -32,7 +32,6 @@
import apijson.framework.APIJSONApplication;
import apijson.framework.APIJSONCreator;
import apijson.orm.SQLConfig;
-import apijson.orm.SQLExecutor;
/**Demo SpringBoot Application 主应用程序启动类
@@ -63,15 +62,11 @@ public void customize(ConfigurableServletWebServerFactory server) {
static {
// 使用本项目的自定义处理类
- APIJSONApplication.DEFAULT_APIJSON_CREATOR = new APIJSONCreator() {
+ APIJSONApplication.DEFAULT_APIJSON_CREATOR = new APIJSONCreator() {
@Override
public SQLConfig createSQLConfig() {
return new DemoSQLConfig();
}
- @Override
- public SQLExecutor createSQLExecutor() {
- return new DemoSQLExecutor();
- }
};
// 把以下需要用到的数据库驱动取消注释即可,如果这里没有可以自己新增
diff --git a/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoController.java
index 1ba9ea1e..2e5f213a 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoController.java
@@ -46,25 +46,39 @@
*/
@RestController
@RequestMapping("")
-public class DemoController extends APIJSONController {
-
+public class DemoController extends APIJSONController {
+
@Override
public Parser newParser(HttpSession session, RequestMethod method) {
return super.newParser(session, method).setNeedVerify(false); // TODO 这里关闭校验,方便新手快速测试,实际线上项目建议开启
}
-
- @PostMapping(value = "get")
+
+ /**增删改查统一接口,这个一个接口可替代 7 个万能通用接口,牺牲一些路由解析性能来提升一点开发效率
+ * @param method
+ * @param request
+ * @param session
+ * @return
+ */
+ @PostMapping(value = "{method}") // 如果和其它的接口 URL 冲突,可以加前缀,例如改为 crud/{method} 或 Controller 注解 @RequestMapping("crud")
@Override
- public String get(@RequestBody String request, HttpSession session) {
- return super.get(request, session);
+ public String crud(@PathVariable String method, @RequestBody String request, HttpSession session) {
+ return super.crud(method, request, session);
}
-
- @PostMapping("get/{tag}")
+
+ /**增删改查统一接口,这个一个接口可替代 7 个万能通用接口,牺牲一些路由解析性能来提升一点开发效率
+ * @param method
+ * @param tag
+ * @param params
+ * @param request
+ * @param session
+ * @return
+ */
+ @PostMapping("{method}/{tag}") // 如果和其它的接口 URL 冲突,可以加前缀,例如改为 crud/{method}/{tag} 或 Controller 注解 @RequestMapping("crud")
@Override
- public String getByTag(@PathVariable String tag, @RequestParam Map params, @RequestBody String request, HttpSession session) {
- return super.getByTag(tag, params, request, session);
+ public String crudByTag(@PathVariable String method, @PathVariable String tag, @RequestParam Map params, @RequestBody String request, HttpSession session) {
+ return super.crudByTag(method, tag, params, request, session);
}
-
+
/**获取
* 只为兼容HTTP GET请求,推荐用HTTP POST,可删除
* @param request 只用String,避免encode后未decode
@@ -81,5 +95,5 @@ public String openGet(@PathVariable String request, HttpSession session) {
}
return get(request, session);
}
-
+
}
\ No newline at end of file
diff --git a/APIJSON-Java-Server/APIJSONDemo-HikariCP/pom.xml b/APIJSON-Java-Server/APIJSONDemo-HikariCP/pom.xml
index 87828223..5ab154e7 100755
--- a/APIJSON-Java-Server/APIJSONDemo-HikariCP/pom.xml
+++ b/APIJSON-Java-Server/APIJSONDemo-HikariCP/pom.xml
@@ -5,7 +5,7 @@
apijson.demo
apijson-demo-hikaricp
- 5.0.0
+ 5.1.0
jar
APIJSONDemo
@@ -22,7 +22,7 @@
com.github.APIJSON
apijson-framework
- LATEST
+ 5.1.0
@@ -83,6 +83,15 @@
+
+
+ jitpack.io
+ https://jitpack.io
+
+ true
+
+
+
spring-snapshots
https://repo.spring.io/snapshot
@@ -94,10 +103,6 @@
spring-milestones
https://repo.spring.io/milestone
-
- jitpack.io
- https://jitpack.io
-
diff --git a/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoApplication.java
index 8ddb8ad4..e0aa2908 100755
--- a/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoApplication.java
@@ -32,7 +32,6 @@
import apijson.framework.APIJSONApplication;
import apijson.framework.APIJSONCreator;
import apijson.orm.SQLConfig;
-import apijson.orm.SQLExecutor;
/**Demo SpringBoot Application 主应用程序启动类
@@ -63,15 +62,11 @@ public void customize(ConfigurableServletWebServerFactory server) {
static {
// 使用本项目的自定义处理类
- APIJSONApplication.DEFAULT_APIJSON_CREATOR = new APIJSONCreator() {
+ APIJSONApplication.DEFAULT_APIJSON_CREATOR = new APIJSONCreator() {
@Override
public SQLConfig createSQLConfig() {
return new DemoSQLConfig();
}
- @Override
- public SQLExecutor createSQLExecutor() {
- return new DemoSQLExecutor();
- }
};
// 把以下需要用到的数据库驱动取消注释即可,如果这里没有可以自己新增
diff --git a/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoController.java
index 1ba9ea1e..2e5f213a 100644
--- a/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoController.java
@@ -46,25 +46,39 @@
*/
@RestController
@RequestMapping("")
-public class DemoController extends APIJSONController {
-
+public class DemoController extends APIJSONController {
+
@Override
public Parser newParser(HttpSession session, RequestMethod method) {
return super.newParser(session, method).setNeedVerify(false); // TODO 这里关闭校验,方便新手快速测试,实际线上项目建议开启
}
-
- @PostMapping(value = "get")
+
+ /**增删改查统一接口,这个一个接口可替代 7 个万能通用接口,牺牲一些路由解析性能来提升一点开发效率
+ * @param method
+ * @param request
+ * @param session
+ * @return
+ */
+ @PostMapping(value = "{method}") // 如果和其它的接口 URL 冲突,可以加前缀,例如改为 crud/{method} 或 Controller 注解 @RequestMapping("crud")
@Override
- public String get(@RequestBody String request, HttpSession session) {
- return super.get(request, session);
+ public String crud(@PathVariable String method, @RequestBody String request, HttpSession session) {
+ return super.crud(method, request, session);
}
-
- @PostMapping("get/{tag}")
+
+ /**增删改查统一接口,这个一个接口可替代 7 个万能通用接口,牺牲一些路由解析性能来提升一点开发效率
+ * @param method
+ * @param tag
+ * @param params
+ * @param request
+ * @param session
+ * @return
+ */
+ @PostMapping("{method}/{tag}") // 如果和其它的接口 URL 冲突,可以加前缀,例如改为 crud/{method}/{tag} 或 Controller 注解 @RequestMapping("crud")
@Override
- public String getByTag(@PathVariable String tag, @RequestParam Map params, @RequestBody String request, HttpSession session) {
- return super.getByTag(tag, params, request, session);
+ public String crudByTag(@PathVariable String method, @PathVariable String tag, @RequestParam Map params, @RequestBody String request, HttpSession session) {
+ return super.crudByTag(method, tag, params, request, session);
}
-
+
/**获取
* 只为兼容HTTP GET请求,推荐用HTTP POST,可删除
* @param request 只用String,避免encode后未decode
@@ -81,5 +95,5 @@ public String openGet(@PathVariable String request, HttpSession session) {
}
return get(request, session);
}
-
+
}
\ No newline at end of file
diff --git a/APIJSON-Java-Server/APIJSONDemo/pom.xml b/APIJSON-Java-Server/APIJSONDemo/pom.xml
index 00841b37..4e425958 100755
--- a/APIJSON-Java-Server/APIJSONDemo/pom.xml
+++ b/APIJSON-Java-Server/APIJSONDemo/pom.xml
@@ -5,7 +5,7 @@
apijson.demo
apijson-demo
- 5.0.0
+ 5.1.0
jar
APIJSONDemo
@@ -22,7 +22,7 @@
com.github.APIJSON
apijson-framework
- LATEST
+ 5.1.0
@@ -76,6 +76,15 @@
+
+
+ jitpack.io
+ https://jitpack.io
+
+ true
+
+
+
spring-snapshots
https://repo.spring.io/snapshot
@@ -87,10 +96,6 @@
spring-milestones
https://repo.spring.io/milestone
-
- jitpack.io
- https://jitpack.io
-
diff --git a/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoApplication.java
index fd0b2a4c..e0aa2908 100755
--- a/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoApplication.java
@@ -62,7 +62,7 @@ public void customize(ConfigurableServletWebServerFactory server) {
static {
// 使用本项目的自定义处理类
- APIJSONApplication.DEFAULT_APIJSON_CREATOR = new APIJSONCreator() {
+ APIJSONApplication.DEFAULT_APIJSON_CREATOR = new APIJSONCreator() {
@Override
public SQLConfig createSQLConfig() {
return new DemoSQLConfig();
diff --git a/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoController.java
index 6afc94ae..2e5f213a 100644
--- a/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoController.java
@@ -46,30 +46,37 @@
*/
@RestController
@RequestMapping("")
-public class DemoController extends APIJSONController {
+public class DemoController extends APIJSONController {
@Override
public Parser newParser(HttpSession session, RequestMethod method) {
return super.newParser(session, method).setNeedVerify(false); // TODO 这里关闭校验,方便新手快速测试,实际线上项目建议开启
}
-
- @PostMapping(value = "get")
+
+ /**增删改查统一接口,这个一个接口可替代 7 个万能通用接口,牺牲一些路由解析性能来提升一点开发效率
+ * @param method
+ * @param request
+ * @param session
+ * @return
+ */
+ @PostMapping(value = "{method}") // 如果和其它的接口 URL 冲突,可以加前缀,例如改为 crud/{method} 或 Controller 注解 @RequestMapping("crud")
@Override
- public String get(@RequestBody String request, HttpSession session) {
- return super.get(request, session);
+ public String crud(@PathVariable String method, @RequestBody String request, HttpSession session) {
+ return super.crud(method, request, session);
}
-
- // @PostMapping(value = "{method}") // 如果和其它的接口 URL 冲突,可以加前缀,例如改为 apijson/{method} 或 Controller 注解 @RequestMapping("apijson")
- // @Override
- // public String crud(@PathVariable String method, @RequestBody String request, HttpSession session) {
- // return super.crud(method, request, session);
- // }
-
- @PostMapping("get/{tag}")
+ /**增删改查统一接口,这个一个接口可替代 7 个万能通用接口,牺牲一些路由解析性能来提升一点开发效率
+ * @param method
+ * @param tag
+ * @param params
+ * @param request
+ * @param session
+ * @return
+ */
+ @PostMapping("{method}/{tag}") // 如果和其它的接口 URL 冲突,可以加前缀,例如改为 crud/{method}/{tag} 或 Controller 注解 @RequestMapping("crud")
@Override
- public String getByTag(@PathVariable String tag, @RequestParam Map params, @RequestBody String request, HttpSession session) {
- return super.getByTag(tag, params, request, session);
+ public String crudByTag(@PathVariable String method, @PathVariable String tag, @RequestParam Map params, @RequestBody String request, HttpSession session) {
+ return super.crudByTag(method, tag, params, request, session);
}
/**获取
diff --git a/APIJSON-Java-Server/APIJSONFinal/pom.xml b/APIJSON-Java-Server/APIJSONFinal/pom.xml
index 7501e320..bb146db4 100755
--- a/APIJSON-Java-Server/APIJSONFinal/pom.xml
+++ b/APIJSON-Java-Server/APIJSONFinal/pom.xml
@@ -4,7 +4,7 @@
apijson.jfinal
apijson-final
jar
- 5.0.0
+ 5.1.0
Demo project for APIJSON Server based on JFinal
http://maven.apache.org
@@ -26,12 +26,12 @@
com.github.Tencent
APIJSON
- 5.0.0
+ 5.1.0
com.github.APIJSON
apijson-framework
- 5.0.0
+ 5.1.0
diff --git a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoFunctionParser.java b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoFunctionParser.java
index 4de57d03..c2d75054 100644
--- a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoFunctionParser.java
+++ b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoFunctionParser.java
@@ -17,6 +17,7 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
+import java.util.List;
import javax.servlet.http.HttpSession;
@@ -30,6 +31,7 @@
import apijson.framework.APIJSONFunctionParser;
import apijson.orm.AbstractVerifier;
import apijson.orm.JSONRequest;
+import apijson.orm.Visitor;
/**可远程调用的函数类,用于自定义业务逻辑处理
@@ -45,6 +47,26 @@ public DemoFunctionParser() {
public DemoFunctionParser(RequestMethod method, String tag, int version, JSONObject request, HttpSession session) {
super(method, tag, version, request, session);
}
+
+ public Visitor getCurrentUser(@NotNull JSONObject current) {
+ return DemoVerifier.getVisitor(getSession());
+ }
+
+ public Long getCurrentUserId(@NotNull JSONObject current) {
+ return DemoVerifier.getVisitorId(getSession());
+ }
+
+ public List getCurrentUserIdAsList(@NotNull JSONObject current) {
+ List list = new ArrayList<>(1);
+ list.add(DemoVerifier.getVisitorId(getSession()));
+ return list;
+ }
+
+ public List getCurrentContactIdList(@NotNull JSONObject current) {
+ Visitor user = getCurrentUser(current);
+ return user == null ? null : user.getContactIdList();
+ }
+
/**
* @param current
@@ -52,24 +74,26 @@ public DemoFunctionParser(RequestMethod method, String tag, int version, JSONObj
* @return
* @throws Exception
*/
- public Object verifyIdList(@NotNull JSONObject current, @NotNull String idList) throws Exception {
+ public void verifyIdList(@NotNull JSONObject current, @NotNull String idList) throws Exception {
Object obj = current.get(idList);
if (obj == null) {
- return null;
+ return;
}
if (obj instanceof Collection == false) {
- throw new IllegalArgumentException(idList + " 不符合 Array 类型! 结构必须是 [] !");
+ throw new IllegalArgumentException(idList + " 不符合 Array 数组类型! 结构必须是 [] !");
}
- JSONArray array = (JSONArray) obj;
- if (array != null) {
- for (int i = 0; i < array.size(); i++) {
- if (array.get(i) instanceof Long == false && array.get(i) instanceof Integer == false) {
- throw new IllegalArgumentException(idList + " 内字符 " + array.getString(i) + " 不符合 Long 类型!");
+
+ Collection> collection = (Collection>) obj;
+ if (collection != null) {
+ int i = -1;
+ for (Object item : collection) {
+ i ++;
+ if (item instanceof Long == false && item instanceof Integer == false) {
+ throw new IllegalArgumentException(idList + "/" + i + ": " + item + " 不符合 Long 数字类型!");
}
}
}
- return null;
}
@@ -79,24 +103,26 @@ public Object verifyIdList(@NotNull JSONObject current, @NotNull String idList)
* @return
* @throws Exception
*/
- public Object verifyURLList(@NotNull JSONObject current, @NotNull String urlList) throws Exception {
+ public void verifyURLList(@NotNull JSONObject current, @NotNull String urlList) throws Exception {
Object obj = current.get(urlList);
if (obj == null) {
- return null;
+ return;
}
if (obj instanceof Collection == false) {
- throw new IllegalArgumentException(urlList + " 不符合 Array 类型! 结构必须是 [] !");
+ throw new IllegalArgumentException(urlList + " 不符合 Array 数组类型! 结构必须是 [] !");
}
- JSONArray array = (JSONArray) obj;
- if (array != null) {
- for (int i = 0; i < array.size(); i++) {
- if (StringUtil.isUrl(array.getString(i)) == false) {
- throw new IllegalArgumentException(urlList + " 内字符 " + array.getString(i) + " 不符合 URL 格式!");
+
+ Collection> collection = (Collection>) obj;
+ if (collection != null) {
+ int i = -1;
+ for (Object item : collection) {
+ i ++;
+ if (item instanceof String == false || StringUtil.isUrl((String) item) == false) {
+ throw new IllegalArgumentException(urlList + "/" + i + ": " + item + " 不符合 URL 字符串格式!");
}
}
}
- return null;
}
@@ -214,13 +240,11 @@ public JSONArray getIdList(@NotNull JSONObject current) {
public Object verifyAccess(@NotNull JSONObject current) throws Exception {
long userId = current.getLongValue(JSONRequest.KEY_USER_ID);
String role = current.getString(JSONRequest.KEY_ROLE);
- if (AbstractVerifier.OWNER.equals(role) && userId != DemoVerifier.getVisitorId(getSession())) {
+ if (AbstractVerifier.OWNER.equals(role) && userId != (Long) DemoVerifier.getVisitorId(getSession())) {
throw new IllegalAccessException("登录用户与角色OWNER不匹配!");
}
return null;
}
-
-
}
\ No newline at end of file
diff --git a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoParser.java b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoParser.java
index 37ce9b17..0fbc9c81 100644
--- a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoParser.java
+++ b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoParser.java
@@ -22,22 +22,22 @@
* 具体见 https://github.com/Tencent/APIJSON/issues/38
* @author Lemon
*/
-public class DemoParser extends APIJSONParser {
-
- public DemoParser() {
- super();
- }
- public DemoParser(RequestMethod method) {
- super(method);
- }
- public DemoParser(RequestMethod method, boolean needVerify) {
- super(method, needVerify);
- }
-
- // 可重写来设置最大查询数量
- // @Override
- // public int getMaxQueryCount() {
- // return 50;
- // }
+public class DemoParser extends APIJSONParser {
+
+ public DemoParser() {
+ super();
+ }
+ public DemoParser(RequestMethod method) {
+ super(method);
+ }
+ public DemoParser(RequestMethod method, boolean needVerify) {
+ super(method, needVerify);
+ }
+
+ // 可重写来设置最大查询数量
+ // @Override
+ // public int getMaxQueryCount() {
+ // return 50;
+ // }
}
diff --git a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoSQLConfig.java
index 3210dd07..965be8be 100755
--- a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -19,14 +19,18 @@
import static apijson.framework.APIJSONConstant.USER_;
import static apijson.framework.APIJSONConstant.USER_ID;
+import java.util.List;
+
import com.alibaba.fastjson.annotation.JSONField;
import apijson.RequestMethod;
import apijson.framework.APIJSONSQLConfig;
import apijson.orm.AbstractSQLConfig;
+import apijson.orm.Join;
+import apijson.orm.Join.On;
-/**SQL 配置,这里不配置数据库账号密码等信息,改为使用 DemoDataSourceConfig 来配置
+/**SQL配置
* TiDB 用法和 MySQL 一致
* 具体见详细的说明文档 C.开发说明 C-1-1.修改数据库链接
* https://github.com/Tencent/APIJSON/blob/master/%E8%AF%A6%E7%BB%86%E7%9A%84%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3.md#c-1-1%E4%BF%AE%E6%94%B9%E6%95%B0%E6%8D%AE%E5%BA%93%E9%93%BE%E6%8E%A5
@@ -56,10 +60,10 @@ public DemoSQLConfig(RequestMethod method, String table) {
// TABLE_KEY_MAP.put(Privacy.class.getSimpleName(), "apijson_privacy");
//主键名映射
- SIMPLE_CALLBACK = new SimpleCallback() {
+ SIMPLE_CALLBACK = new SimpleCallback() {
@Override
- public AbstractSQLConfig getSQLConfig(RequestMethod method, String database, String schema, String table) {
+ public AbstractSQLConfig getSQLConfig(RequestMethod method, String database, String schema, String datasource, String table) {
return new DemoSQLConfig(method, table);
}
@@ -78,7 +82,7 @@ public String getUserIdKey(String database, String schema, String datasource, St
//取消注释来实现数据库自增 id
// @Override
- // public Object newId(RequestMethod method, String database, String schema, String datasource, String table) {
+ // public Long newId(RequestMethod method, String database, String schema, String datasource, String table) {
// return null; // return null 则不生成 id,一般用于数据库自增 id
// }
@@ -98,6 +102,7 @@ public String getUserIdKey(String database, String schema, String datasource, St
RAW_MAP.put("substring_index(substring_index(content,'.',1),'.',-1) AS subContent", ""); // APIAuto 不支持 ',可以用 Postman 测
RAW_MAP.put("commentWhereItem1","(`Comment`.`userId` = 38710 AND `Comment`.`momentId` = 470)");
RAW_MAP.put("to_days(now())-to_days(`date`)<=7",""); // 给 @having 使用
+ RAW_MAP.put("sexShowStr","CASE sex WHEN 0 THEN '男' WHEN 1 THEN '女' ELSE '其它' END"); // 给 @having 使用
}
@@ -238,7 +243,7 @@ public String getDBPassword() {
// public String getKey(String key) {
// return super.getKey(ColumnUtil.compatInputKey(key, getTable(), getMethod()));
// }
-
+
// 取消注释来兼容 Oracle DATETIME, TIMESTAMP 等日期时间类型的值来写库
// public Object getValue(@NotNull Object value) {
// if (isOracle() && RequestMethod.isQueryMethod(getMethod()) == false && value instanceof String) {
@@ -258,5 +263,19 @@ public String getDBPassword() {
// }
// return super.getValue(value);
// }
+
+
+ @Override
+ protected void onGetCrossJoinString(Join j) throws UnsupportedOperationException {
+ // 开启 CROSS JOIN 笛卡尔积联表 super.onGetCrossJoinString(j);
+ }
+ @Override
+ protected void onJoinNotRelation(String sql, String quote, Join j, String jt, List onList, On on) {
+ // 开启 JOIN ON t1.c1 != t2.c2 等不等式关联 super.onJoinNotRelation(sql, quote, j, jt, onList, on);
+ }
+ @Override
+ protected void onJoinComplextRelation(String sql, String quote, Join j, String jt, List onList, On on) {
+ // 开启 JOIN ON t1.c1 LIKE concat('%', t2.c2, '%') 等复杂关联 super.onJoinComplextRelation(sql, quote, j, jt, onList, on);
+ }
}
diff --git a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoVerifier.java b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoVerifier.java
index 25493a6d..621a8f07 100644
--- a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoVerifier.java
+++ b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoVerifier.java
@@ -16,12 +16,11 @@
import apijson.framework.APIJSONVerifier;
-
/**安全校验器,校验请求参数、角色与权限等
* 具体见 https://github.com/Tencent/APIJSON/issues/12
* @author Lemon
*/
-public class DemoVerifier extends APIJSONVerifier {
+public class DemoVerifier extends APIJSONVerifier {
public static final String TAG = "DemoVerifier";
// 重写方法来自定义字段名等
diff --git a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/jfinal/DemoAppConfig.java b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/jfinal/DemoAppConfig.java
index 1f04c205..afa74fc2 100755
--- a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/jfinal/DemoAppConfig.java
+++ b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/jfinal/DemoAppConfig.java
@@ -72,7 +72,7 @@ public static void main(String[] args) throws Exception {
COMPILE_MAP.put("ID_CARD", StringUtil.PATTERN_ID_CARD);
// 使用本项目的自定义处理类
- APIJSONApplication.DEFAULT_APIJSON_CREATOR = new APIJSONCreator() {
+ APIJSONApplication.DEFAULT_APIJSON_CREATOR = new APIJSONCreator() {
@Override
public Parser createParser() {
diff --git a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/jfinal/DemoController.java b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/jfinal/DemoController.java
index d37a2002..aa026205 100755
--- a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/jfinal/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/jfinal/DemoController.java
@@ -89,25 +89,26 @@ public class DemoController extends Controller {
private static final String TAG = "DemoController";
public Parser newParser(HttpSession session, RequestMethod method) {
- Parser parser = APIJSONController.APIJSON_CREATOR.createParser();
+ @SuppressWarnings("unchecked")
+ Parser parser = (Parser) APIJSONController.APIJSON_CREATOR.createParser();
parser.setMethod(method);
if (parser instanceof APIJSONParser) {
- ((APIJSONParser) parser).setSession(session);
+ ((APIJSONParser) parser).setSession(session);
+ }
+ // 可以更方便地通过日志排查错误
+ if (parser instanceof AbstractParser) {
+ ((AbstractParser) parser).setRequestURL(getRequest().getRequestURL().toString());
}
- // // 取消注释可以更方便地通过日志排查错误
- // if (parser instanceof AbstractParser) {
- // ((AbstractParser>) parser).setRequestURL(getRequest().getRequestURL().toString());
- // }
return parser;
}
-
+
/**处理万能通用接口
* @param method
* @see https://github.com/Tencent/APIJSON/blob/master/Document.md#3.1
*/
public void parseAndResponse(RequestMethod method) {
String tag = getPara();
-
+
if (StringUtil.isEmpty(tag, true) == false) {
try {
tag = URLDecoder.decode(tag, "UTF-8");
@@ -115,19 +116,19 @@ public void parseAndResponse(RequestMethod method) {
e.printStackTrace();
}
}
-
+
if (StringUtil.isEmpty(tag, true)) {
// /get, /gets, /head, /heads, /post, /put, /delete 等万能通用接口
renderJson(newParser(getSession(), method).parse(getRawData()));
return;
}
-
+
// /get/User, /gets/Moment[], /put/Comment:[] 等简版接口,APIJSON 4.8.0+ 可用,对不兼容的低版本需要注释以下代码
JSONObject req = AbstractParser.wrapRequest(method, tag, JSON.parseObject(getRawData()), false);
if (req == null) {
req = new JSONObject(true);
}
-
+
Map paraMap = getParaMap();
Set> set = paraMap == null ? null : paraMap.entrySet();
if (set != null) { // 最外层的全局参数
@@ -137,11 +138,11 @@ public void parseAndResponse(RequestMethod method) {
if (StringUtil.isEmpty(tag, false)) {
continue;
}
-
+
req.put(entry.getKey(), value);
}
}
-
+
renderJson(newParser(getSession(), method).parse(req));
}
@@ -210,8 +211,8 @@ public void delete() {
parseAndResponse(DELETE);
}
-
-
+
+
//通用接口,非事务型操作 和 简单事务型操作 都可通过这些接口自动化实现>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@@ -275,8 +276,8 @@ public void reload() {
phone = requestObject.getString(PHONE);
verify = requestObject.getString(VERIFY);
} catch (Exception e) {
- renderJson(DemoParser.extendErrorResult(requestObject, e));
- return;
+ renderJson(DemoParser.extendErrorResult(requestObject, e));
+ return;
}
JSONResponse response = new JSONResponse(headVerify(Verify.TYPE_RELOAD, phone, verify));