diff --git a/plugin_rest.html b/plugin_rest.html index b2ea84684..11576f900 100644 --- a/plugin_rest.html +++ b/plugin_rest.html @@ -65,6 +65,10 @@
public class SimpleRestServlet extends RestHttpServlet<UserInfo> {
+ protected static final RetResult RET_UNLOGIN = RetCodes.retResult(RetCodes.RET_USER_UNLOGIN);
+
+ protected static final RetResult RET_AUTHILLEGAL = RetCodes.retResult(RetCodes.RET_USER_AUTH_ILLEGAL);
+
@Resource
private UserService userService;
@@ -81,23 +85,17 @@
public boolean authenticate(int module, int actionid, HttpRequest request, HttpResponse response) throws IOException {
UserInfo info = currentUser(request);
if (info == null) {
- response.addHeader("retcode", RetCodes.RET_USER_UNLOGIN);
- response.addHeader("retmessage", "Not Login");
- response.setStatus(203);
- response.finish("{'success':false, 'message':'Not Login'}");
+ response.finishJson(RET_UNLOGIN);
return false;
- } else if (!info.checkAuth(module, actionid)) { // 根据module、actionid进行鉴权
- response.addHeader("retcode", RetCodes.RET_USER_AUTH_ILLEGAL);
- response.addHeader("retmessage", "No Authority");
- response.setStatus(203);
- response.finish("{'success':false, 'message':'No Authority'}");
+ } else if (!info.checkAuth(module, actionid)) {
+ response.finishJson(RET_AUTHILLEGAL);
return false;
}
return true;
}
}
- @@ -205,7 +203,7 @@ //查询列表 @RestMapping(name = "query", authignore = true) - public Sheet<HelloEntity> queryHello(@RestParam("bean") HelloBean bean, Flipper flipper) { //通过 /hello/query/start:0/size:20?bean={...} 查询列表 + public Sheet<HelloEntity> queryHello(@RestParam("bean") HelloBean bean, Flipper flipper) { //通过 /hello/query/offset:0/limit:20?bean={...} 查询列表 return source.querySheet(HelloEntity.class, flipper, bean); } @@ -232,7 +230,7 @@ HelloEntity bean = req.getJsonParameter(HelloEntity.class, "bean"); UserInfo user = currentUser(req); RetResult<HelloEntity> result = _service.createHello(user, bean); - sendRetResult(resp, result); + resp.finishJson(result); } @AuthIgnore @@ -240,7 +238,7 @@ public void delete(HttpRequest req, HttpResponse resp) throws IOException { int id = Integer.parseInt(req.getRequstURILastPath()); _service.deleteHello(id); - sendRetResult(resp, RetResult.SUCCESS); + resp.finishJson(RetResult.success()); } @AuthIgnore @@ -248,14 +246,14 @@ public void update(HttpRequest req, HttpResponse resp) throws IOException { HelloEntity bean = req.getJsonParameter(HelloEntity.class, "bean"); _service.updateHello(bean); - sendRetResult(resp, RetResult.SUCCESS); + resp.finishJson(RetResult.success()); } @AuthIgnore @WebAction(url = "/hello/query") public void query(HttpRequest req, HttpResponse resp) throws IOException { HelloBean bean = req.getJsonParameter(HelloBean.class, "bean"); - Flipper flipper = findFlipper(req); + Flipper flipper = req.getFlipper(); Sheet<HelloEntity> result = _service.queryHello(bean, flipper); resp.finishJson(result); } @@ -268,7 +266,7 @@ resp.finishJson(bean); } } - +
REST的第二种设置方式是显式的设置, 看如下范例:
@@ -313,7 +311,7 @@
}
//查询Sheet列表
- public Sheet<HelloEntity> queryHello(HelloBean bean, Flipper flipper) { //通过 /hello/query/start:0/size:20?bean={...} 查询Sheet列表
+ public Sheet<HelloEntity> queryHello(HelloBean bean, Flipper flipper) { //通过 /hello/query/offset:0/limit:20?bean={...} 查询Sheet列表
return source.querySheet(HelloEntity.class, flipper, bean);
}
@@ -347,7 +345,7 @@
HelloEntity bean = req.getJsonParameter(HelloEntity.class, "bean");
UserInfo user = currentUser(req);
RetResult<HelloEntity> result = _service.createHello(user, bean);
- sendRetResult(resp, result);
+ resp.finishJson(result);
}
@AuthIgnore
@@ -355,7 +353,7 @@
public void delete(HttpRequest req, HttpResponse resp) throws IOException {
int id = Integer.parseInt(req.getRequstURILastPath());
_service.deleteHello(id);
- sendRetResult(resp, RetResult.SUCCESS);
+ resp.finishJson(RetResult.success());
}
@AuthIgnore
@@ -363,7 +361,7 @@
public void update(HttpRequest req, HttpResponse resp) throws IOException {
HelloEntity bean = req.getJsonParameter(HelloEntity.class, "bean");
_service.updateHello(bean);
- sendRetResult(resp, RetResult.SUCCESS);
+ resp.finishJson(RetResult.success());
}
@AuthIgnore
@@ -372,14 +370,14 @@
HelloEntity bean = req.getJsonParameter(HelloEntity.class, "bean");
String[] cols = req.getJsonParameter(String[].class, "cols");
_service.updateHello(bean, cols);
- sendRetResult(resp, RetResult.SUCCESS);
+ resp.finishJson(RetResult.success());
}
@AuthIgnore
@WebAction(url = "/hello/query")
public void query(HttpRequest req, HttpResponse resp) throws IOException {
HelloBean bean = req.getJsonParameter(HelloBean.class, "bean");
- Flipper flipper = findFlipper(req);
+ Flipper flipper = req.getFlipper();
Sheet<HelloEntity> result = _service.queryHello(bean, flipper);
resp.finishJson(result);
}
@@ -405,10 +403,10 @@
public void jsfind(HttpRequest req, HttpResponse resp) throws IOException {
int id = Integer.parseInt(req.getRequstURILastPath());
HelloEntity bean = _service.findHello(id);
- sendJsResult(resp, "varhello", bean);
+ resp.finishJsResult("varhello", bean);
}
}
-
+
REST插件让开发者省去了编写HttpServlet过程,让开发更加敏捷。