RESful 风格轻量级 Web 服务框架 Archer-Framework

Apache
Java 查看源码»
跨平台
2016-09-12
echrist

概述

archer-framework是一个旨在构建RESful风格WEB服务的轻量级框架。

主要特点

  1. 采用面向服务的设计,服务端提供的API可以为PC WEB端、移动端、微信公众号等不同的客户端提供服务。

  2. 易于构建前后端分离的应用,客户端和服务端通过服务端对外暴露的RESful API 进行交互,服务端开发人员可以专注于业务逻辑的开发,而客户端开发人员则可以采用自己熟悉的语言来做界面展现。

  3. 第三方系统可以方便的调用服务端提供的API,服务端提供的API不仅可以为内部产品进行服务,还可以为第三方系统提供服务。

  4. 多种安全策略保障服务的安全性。包括IP控制、UA控制、第三方系统接口调用频率、范围等多种安全策略。

  5. 框架采用分模块的设计,扩展性良好,框架使用者可以根据具体的应用场景进行模块的组合以及自定义。

  6. 框架内置多种服务,并且大部分都是可选和可配置的。如:安全服务、文件服务、缓存服务、EXCEL导出、短信发送服务、接口测试支持等。

  7. 这是一个框架,不是一个所谓的包含用户管理、角色管理、任务调度、流程管理,包含界面的快速开发平台或者说后台管理系统。


代码示例

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();}

的码云指数为
超过 的项目
加载中

评论(1)

ming133
ming133
沙发提问:目前有生产环境在用吗? #Archer-Framework#

archer-framework 1.0,RESful风格Web服务框架

archer-framework 1.0 发布了。archer-framework是一个旨在构建RESful风格WEB服务的轻量级框架。 主要特点 采用面向服务的设计,服务端提供的API可以为PC WEB端、移动端、微信公众号等不同的...

2016/09/12 14:40

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

That would lead to questions

That would lead to questions

2015/06/12 13:34
5
0
javaWEB 之 消息中间件 之 webservice 之 axis2 的使用

### webservice 之 axis2 的使用 #### 简单说下如何使用webservice . - webservice有个服务端,像数据库,svn,activemq,zookeeper,这些都有服务端。 服务端能做什么:服务端提供一些自定义的...

2016/08/16 13:58
29
0
I only wish the 3 Stooges were

I only wish the 3 Stooges were

2015/05/11 11:08
3
0
ave listed one or more

ave listed one or more

2015/05/23 11:53
2
0
iOS Technologies over view 速查参考

说明:1、圆括号内,是对应技术的详细文档名称,可以粘贴到AppDeveloper里面直接搜索。 2、**符号,指该技术在iOS Technologies over view 文档内部另有介绍。 Layers of iOS | |_Cocoa Touc...

2014/09/30 10:25
46
0
简陋的swift carthage copy-frameworks 辅助脚本

在看 carthage 时,其中需要配置一个 copy-frameworks 脚本,此脚本特殊的地方,需要手动填写 Input Files 和 Output Files.一个一个填写,很糟心~...

2018/01/14 23:42
23
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部