Archer-FrameworkRESful 风格轻量级 Web 服务框架
概述
archer-framework是一个旨在构建RESful风格WEB服务的轻量级框架。
主要特点
-
采用面向服务的设计,服务端提供的API可以为PC WEB端、移动端、微信公众号等不同的客户端提供服务。
-
易于构建前后端分离的应用,客户端和服务端通过服务端对外暴露的RESful API 进行交互,服务端开发人员可以专注于业务逻辑的开发,而客户端开发人员则可以采用自己熟悉的语言来做界面展现。
-
第三方系统可以方便的调用服务端提供的API,服务端提供的API不仅可以为内部产品进行服务,还可以为第三方系统提供服务。
-
多种安全策略保障服务的安全性。包括IP控制、UA控制、第三方系统接口调用频率、范围等多种安全策略。
-
框架采用分模块的设计,扩展性良好,框架使用者可以根据具体的应用场景进行模块的组合以及自定义。
-
框架内置多种服务,并且大部分都是可选和可配置的。如:安全服务、文件服务、缓存服务、EXCEL导出、短信发送服务、接口测试支持等。
-
这是一个框架,不是一个所谓的包含用户管理、角色管理、任务调度、流程管理,包含界面的快速开发平台或者说后台管理系统。
代码示例
Entity定义
@Entitypublic class User extends BaseEntity{ public static final Find<User> find = new Find<User>(User.class); @Id private String id; private String name; private Integer age; public String getId() { return id; } public User setId(String id) { this.id=id; return this; } ...}
查询
public ExecuteResult findList(String name , Integer age){ return success(User.find.query() .where() .eq("name", name) .ge("age", age) .order("name") .findList() );}
// 返回的JSON数据{ resultCode: "SUCCESS", resultMsg: "执行成功", resultCodeExt: null, resultData: [ { name: "archer", age: 28 }, { name: "framework", age: 30 } ]}
分页查询
public ExecuteResult findPagedList(Integer pageIndex, Integer pageSize,String name ,Integer age){ return success( findPagedList(pageIndex, pageSize, User.find.query() .where() .eq("name", name) .ge("age", age) .order("name") );}
新增/保存
public ExecuteResult store(String name , Integer age){ return success( new User() .setName(name) .setAge(age) .store() );}
删除
public ExecuteResult delete(String id){ return success( new User() .setId(id) .logicalDelete() );}
public ExecuteResult delete(User user){ return success( user.logicalDelete() );}
接口测试用例
static String BASE_URL = "/api/v1/internal/system/user/";
@Test public void store() { post(BASE_URL + "store") .form("name", "archer") .form("age", 20) .sign() .send() .toString();}
评论