筋斗云接口编程 / 批量请求

批量请求

筋斗云框架支持批量请求,即在一次请求中,包含多条接口调用。

假设一个前端页面进入时,需要接连调用好多次接口才能完成展现,一般的做法是需要后端重新设计接口来优化。
筋斗云支持batch接口,这时后端不必做任何设计修改,前端只要调用batch接口即可获得优化。

假如前端进入某页面,需要调用下面两个接口:

获取用户信息
User.get() -> {id, name, phone, ...}

上传用户操作日志
ActionLog.add()(page, ver, userId) -> id

批处理允许把两个请求一次性提交,减少交互带来的开销。

如果前端H5应用使用了筋斗云前端框架,可以非常方便的启动/禁用批处理操作,只需要在多次调用前加一行useBatchCall,就可将多次调用合并成一次批调用:

MUI.useBatchCall(); // 在本次消息循环中执行所有的callSvr都加入批处理。
// MUI.useBatchCall({useTrans:1}); // 启用事务的写法

// 调用一
var param = {res: "id,name,phone"};
callSvr("User.get", param, function(data) {} )

// 调用二
var postParam = {page: "home", ver: "android", userId: "{$1.id}"};
callSvr("ActionLog.add", function(data) {}, postParam, {ref: ["userId"]} );

其原理是使用batch接口,在POST内容中设置每个调用,请求示例如下:

POST /mysvc/api.php/batch

[
    {
        "ac": "User.get",
        "get": {"res": "name,phone"}
    },
    {
        "ac": "ActionLog.add",
        "post": {"page": "home", "ver": "android", "userId": "{$-1.id}"},
        "ref": ["userId"]
    }
]

POST内容的格式是一个JSON数组,数组中每一项为一个调用声明,参数有ac, get, post, ref等, 只有ac参数必须,其它均可省略。

参数
- get: URL请求参数。
- post: POST请求参数。
- ref: 使用了batch引用的参数列表。

后面的请求还可以引用前面请求返回的内容作为参数。例子中,调用二中参数userId引用了调用一的返回结果,userId的值”{1.id}”表示取第一次调用值的id属性。  
注意:引用表达式应以”{}”包起来,”
n”中n可以为正数或负数(但不能为0),表示对第n次或前n次调用结果的引用,以下为可能的格式:

"{$1}"
"id={$1.id}"
"{$-1.d[0][0]}"
"id in ({$1}, {$2})"
"diff={$-2 - $-1}"

花括号中的内容将用计算后的结果替换。如果表达式非法,将使用”null”值替代。

在创建批量请求时,可以指定这些调用是否在一个事务(transaction)中,一起成功提交或失败回滚。
如果想让这批请求在一个事务中处理,只需要增加URL参数useTrans=1

POST /mysvc/api.php/batch?useTrans=1

batch的返回内容是多条调用返回内容组成的数组,样例如下:

[0, [
    [ 0, {id: 1, name: "用户1", phone: "13712345678"} ],  // 调用User.get的返回结果
    [ 0, "OK" ]  // 调用ActionLog.add的返回结果
]]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
功能描述 筋斗云在线测评系统,主要包括:试题展示、用户管理、成绩查询、历史记录、试题管理、智能组卷、智能分析。  电子商务系统功能描述 试题展示:实现试题的选择、展示和提交。 用户管理:实现用户的注册、登录、修改密码和修改个人信息。 成绩查询:实现成绩查询,错题解析和成绩分析报告。 历史记录:实现对历史测评的查询和回顾,对错题智能提示。 试题管理:实现动态向数据库增加、删除、修改和查询试题功能。 智能组卷:实现根据制定条件自动选题,可以动态更改试题。 智能分析:实现对用户的答题记录,智能分析错题,显示分析报告。 本系统采用SSM框架,使用了redis技术,双服务器;’ 本系统页面设计精美,特效很多; 本测评系统实现了多角色多用户的切换,实现了试卷的创建,智能组卷,无聊刷题,考试情况的分析统计等功能,分为前台后台两部分。 通过设置tomcat,修改数据库配置文件后即可使用, 本系统包括测评系统主程序源代码,数据库文件,需求文档,数据库设计包含在需求文档中,十分详细, 囊括了功能结构图,用例图,业务流程图,ER结构图,清晰明了,足以满足您在技术上的需求或者直接进行使用,您可以在参考原项目的基础上进行修改,或者直接录入数据信息进行使用。 本系统属于原创代码,如您需要在其他位置进行发表,请注明出处。谢谢使用!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值