Archer-FrameworkRESful 風(fēng)格輕量級(jí) Web 服務(wù)框架
概述
archer-framework是一個(gè)旨在構(gòu)建RESful風(fēng)格WEB服務(wù)的輕量級(jí)框架。
主要特點(diǎn)
-
采用面向服務(wù)的設(shè)計(jì),服務(wù)端提供的API可以為PC WEB端、移動(dòng)端、微信公眾號(hào)等不同的客戶端提供服務(wù)。
-
易于構(gòu)建前后端分離的應(yīng)用,客戶端和服務(wù)端通過(guò)服務(wù)端對(duì)外暴露的RESful API 進(jìn)行交互,服務(wù)端開發(fā)人員可以專注于業(yè)務(wù)邏輯的開發(fā),而客戶端開發(fā)人員則可以采用自己熟悉的語(yǔ)言來(lái)做界面展現(xiàn)。
-
第三方系統(tǒng)可以方便的調(diào)用服務(wù)端提供的API,服務(wù)端提供的API不僅可以為內(nèi)部產(chǎn)品進(jìn)行服務(wù),還可以為第三方系統(tǒng)提供服務(wù)。
-
多種安全策略保障服務(wù)的安全性。包括IP控制、UA控制、第三方系統(tǒng)接口調(diào)用頻率、范圍等多種安全策略。
-
框架采用分模塊的設(shè)計(jì),擴(kuò)展性良好,框架使用者可以根據(jù)具體的應(yīng)用場(chǎng)景進(jìn)行模塊的組合以及自定義。
-
框架內(nèi)置多種服務(wù),并且大部分都是可選和可配置的。如:安全服務(wù)、文件服務(wù)、緩存服務(wù)、EXCEL導(dǎo)出、短信發(fā)送服務(wù)、接口測(cè)試支持等。
-
這是一個(gè)框架,不是一個(gè)所謂的包含用戶管理、角色管理、任務(wù)調(diào)度、流程管理,包含界面的快速開發(fā)平臺(tái)或者說(shuō)后臺(tái)管理系統(tǒng)。
代碼示例
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數(shù)據(jù){
resultCode: "SUCCESS",
resultMsg: "執(zhí)行成功",
resultCodeExt: null,
resultData: [
{
name: "archer",
age: 28
},
{
name: "framework",
age: 30
}
]}
分頁(yè)查詢
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()
);}
接口測(cè)試用例
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();}
