当前位置: 首页 > 软件库 > Web应用开发 > Web框架 >

Archer-Framework

RESful 风格轻量级 Web 服务框架
授权协议 Apache
开发语言 Java
所属分类 Web应用开发、 Web框架
软件类型 开源软件
地区 国产
投 递 者 万俟丁雷
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

概述

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

  • CF上的一道题,就是求赢的概率。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<iomanip> #include<algorithm> #include<cctype> #include<stack> #include<queue> #include<string> #include<

  • Archer 是什么?    Archer Gameware 是完整的游戏开发组件,不是一般意义上的 Game Engine,我们将其称为“Gameware”,提供功能丰富的客户端游戏引擎以及服务器端解决方案。    目前我们对引擎的功能界定包括: 采用C++编码,完全面向对象的构架 高性能3D实时渲染系统 高性能音频输出系统 室内外场景无缝结合管理器 角色骨骼动画支持 粒子系统,广告牌,灯光映射

  • archer 项目地址: https://github.com/jly8866/archer 安装docker版本 Pull Docker docker pull hhyo/archer 启动服务 docker run --name archery -v /Users/apbc/Works/code/archer/archer/settings.py:/opt/archer/archer/sett

  •   Architecture不是软件,是关于软件如何设计的重要决策 Architecture不关心所有的决策,而只是关心其中的重要决策:即关系各个部分(模块)的静态关系(功能划分)和动态关系(模块交互) Architecture所要求的原则和决策会体现在Framework当中   Framework不是一个运行系统,而是系统所依赖的一个编码约束(基类和子类)和算法实现(函数调用)的集合 Frame

  •   This guide is about Fieata online character: Archer and Mage. We collect this article just is to give a hand for the players whose job is at two characters.   ---The Arhcer--- With the power of the

 相关资料
  • REST-表述性状态转移(Representational State Transfer)是Roy Fielding博士在2000年他的博士论文《基于网络软件体系结构的构架风格与设计》中提出来的概念,它是一种软件架构风格。采用REST架构风格的Web服务相比复杂的SOAP服务更加简洁、易用。 REST强调从资源的角度来观察整个网络,基于REST的架构是一种面向资源的架构(Resource-Orie

  • 问题内容: 是否有任何Java库允许构建没有任何应用程序服务器框架的简单独立Web服务服务器? 问题答案: Java 6包含JAX-WS,这使得在独立应用程序中托管Web服务非常容易:

  • Swoole\Coroutine\Server 与 异步风格 的服务端不同之处在于,Swoole\Coroutine\Server 是完全协程化实现的服务器,参考 完整例子。 优点: 不需要设置事件回调函数。建立连接、接收数据、发送数据、关闭连接都是顺序的,没有 异步风格 的并发问题,例如: $serv = new Swoole\Server("127.0.0.1", 9501); //监听连接

  • 方便的创建一个异步服务器程序,支持TCP、UDP、unixSocket 3 种socket类型,支持IPv4和IPv6,支持SSL/TLS单向双向证书的隧道加密。使用者无需关注底层实现细节,仅需要设置网络事件的回调函数即可,例子参考快速启动。 !> 只是Server端的风格是异步的(即所有事件都需要设置回调函数),也是支持协程的,开启了enable_coroutine之后就支持协程了(默认开启),

  • 本文向大家介绍轻量级的Web框架Flask 中模块化应用的实现,包括了轻量级的Web框架Flask 中模块化应用的实现的使用技巧和注意事项,需要的朋友参考一下 Flask是一个轻量级的Web框架。虽然是轻量级的,但是对于组件一个大型的、模块化应用也是能够实现的,“蓝图”就是这样一种实现。对于模块化应用的实现,在Flask 0.2版本中进行了设计。本文暂时不对“蓝图”做详细的介绍,而是先从0.2版本

  • 本文向大家介绍轻量级javascript 框架Backbone使用指南,包括了轻量级javascript 框架Backbone使用指南的使用技巧和注意事项,需要的朋友参考一下 Backbone 是一款基于模型-视图-控制器 MVC 模式的轻量级javascript 框架 ,可以用来帮助开发人员创建单页Web应用。 借助Backbone 我们可以使用REST的方式来最小化客户端和服务器间的数据传输,

  • 本文向大家介绍前端轻量级MVC框架CanJS详解,包括了前端轻量级MVC框架CanJS详解的使用技巧和注意事项,需要的朋友参考一下 选择正确的库 创建一个JS APP没有好的工具是很有难度的,jQuery只是操作DOM的库,没有提供任何创建APP的基础,这就是为什么我们要一个类似CanJS的专门的库。 CanJS 是一个轻量级的MVC库,提供你创建一个JS APP所需的工具。 CanJS 是一个轻

  • 问题内容: 是否有一个提供发布/订阅模式的Java轻量级框架? 一些理想的功能 支持泛型 向发布者注册多个订阅者 API主要是接口和一些有用的实现 完全不需要内存,持久性和事务保证。 我了解JMS,但这对我来说太过分了。发布/订阅的数据是文件系统扫描的结果,扫描结果被馈送到另一个组件进行处理,然后在将其馈给另一个组件之前进行处理,依此类推。 编辑:所有在同一过程中。bean的PropertyCha