Skip to content

Commit 9823a91

Browse files
committed
新增支持 /{method}/{tag}?{globalKey}={globalValue} 这种简化使用的万能接口
1 parent 948311d commit 9823a91

1 file changed

Lines changed: 104 additions & 0 deletions

File tree

src/main/java/apijson/framework/APIJSONController.java

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232

3333
import java.lang.reflect.Method;
3434
import java.rmi.ServerException;
35+
import java.util.Map;
3536

3637
import javax.servlet.AsyncContext;
3738
import javax.servlet.ServletResponse;
@@ -40,10 +41,13 @@
4041

4142
import com.alibaba.fastjson.JSONObject;
4243

44+
import apijson.JSON;
45+
import apijson.JSONRequest;
4346
import apijson.Log;
4447
import apijson.NotNull;
4548
import apijson.RequestMethod;
4649
import apijson.StringUtil;
50+
import apijson.orm.AbstractParser;
4751
import apijson.orm.Parser;
4852
import apijson.orm.Visitor;
4953
import unitauto.MethodUtil;
@@ -156,6 +160,106 @@ public String delete(String request, HttpSession session) {
156160
//通用接口,非事务型操作 和 简单事务型操作 都可通过这些接口自动化实现>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
157161

158162

163+
//通用接口,非事务型操作 和 简单事务型操作 都可通过这些接口自动化实现<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
164+
165+
public String parseByTag(RequestMethod method, String tag, Map<String, String> params, String request, HttpSession session) {
166+
167+
JSONObject req = AbstractParser.wrapRequest(JSON.parseObject(request), tag, true);
168+
if (req == null) {
169+
req = new JSONObject(true);
170+
}
171+
if (params != null && params.isEmpty() == false) {
172+
req.putAll(params);
173+
}
174+
175+
return newParser(session, method).parse(req);
176+
}
177+
178+
// /**获取列表
179+
// * @param request 只用String,避免encode后未decode
180+
// * @param session
181+
// * @return
182+
// * @see {@link RequestMethod#GET}
183+
// */
184+
// public String listByTag(String tag, String request, HttpSession session) {
185+
// return parseByTag(GET, tag + JSONRequest.KEY_ARRAY, request, session);
186+
// }
187+
188+
/**获取
189+
* @param request 只用String,避免encode后未decode
190+
* @param session
191+
* @return
192+
* @see {@link RequestMethod#GET}
193+
*/
194+
public String getByTag(String tag, Map<String, String> params, String request, HttpSession session) {
195+
return parseByTag(GET, tag, params, request, session);
196+
}
197+
198+
199+
/**计数
200+
* @param request 只用String,避免encode后未decode
201+
* @param session
202+
* @return
203+
* @see {@link RequestMethod#HEAD}
204+
*/
205+
public String headByTag(String tag, Map<String, String> params, String request, HttpSession session) {
206+
return parseByTag(HEAD, tag, params, request, session);
207+
}
208+
209+
/**限制性GET,request和response都非明文,浏览器看不到,用于对安全性要求高的GET请求
210+
* @param request 只用String,避免encode后未decode
211+
* @param session
212+
* @return
213+
* @see {@link RequestMethod#GETS}
214+
*/
215+
public String getsByTag(String tag, Map<String, String> params, String request, HttpSession session) {
216+
return parseByTag(GETS, tag, params, request, session);
217+
}
218+
219+
/**限制性HEAD,request和response都非明文,浏览器看不到,用于对安全性要求高的HEAD请求
220+
* @param request 只用String,避免encode后未decode
221+
* @param session
222+
* @return
223+
* @see {@link RequestMethod#HEADS}
224+
*/
225+
public String headsByTag(String tag, Map<String, String> params, String request, HttpSession session) {
226+
return parseByTag(HEADS, tag, params, request, session);
227+
}
228+
229+
/**新增
230+
* @param request 只用String,避免encode后未decode
231+
* @param session
232+
* @return
233+
* @see {@link RequestMethod#POST}
234+
*/
235+
public String postByTag(String tag, Map<String, String> params, String request, HttpSession session) {
236+
return parseByTag(POST, tag, params, request, session);
237+
}
238+
239+
/**修改
240+
* @param request 只用String,避免encode后未decode
241+
* @param session
242+
* @return
243+
* @see {@link RequestMethod#PUT}
244+
*/
245+
public String putByTag(String tag, Map<String, String> params, String request, HttpSession session) {
246+
return parseByTag(PUT, tag, params, request, session);
247+
}
248+
249+
/**删除
250+
* @param request 只用String,避免encode后未decode
251+
* @param session
252+
* @return
253+
* @see {@link RequestMethod#DELETE}
254+
*/
255+
public String deleteByTag(String tag, Map<String, String> params, String request, HttpSession session) {
256+
return parseByTag(DELETE, tag, params, request, session);
257+
}
258+
259+
260+
//通用接口,非事务型操作 和 简单事务型操作 都可通过这些接口自动化实现>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
261+
262+
159263

160264

161265
/**重新加载配置

0 commit comments

Comments
 (0)