后端接口是指在【后端服务】里执行的接口,在前端不能调用,也不受【接口安全】控制。
后端接口用法跟前端接口基本一致,不一致的地方粗体显示,未列出来的接口不可用。
$product.get(_id)
$product.search(path, query, option, cache)
$product.count(path, query, cache)
$product.modify(_id, updater)
$product.modifies(query, updater)
$product.create(type, x, y)
$product.delete(_id)
$product.deletes(query)
$product.changeType(query, type)
$user.get(_id)
$user.search(path, query, option, cache)
$user.count(path, query, cache)
$user.modify(_id, updater)
$user.modifies(query, updater)
$user.delete(_id)
$user.deletes(query)
$user.create(phone, passwd, x, y)
由管理员手动创建手机号为phone
,密码为passwd
,具体内容为x
对象的账号。
尽量少用而采用用户自主注册$me.register()
或微信自动注册/扫码注册
$xdb.get(_id)
$xdb.search(path, query, option, cache)
$xdb.count(path, query, cache)
$xdb.modify(_id, updater)
$xdb.modifies(query, updater)
$xdb.create(type, key, x, y)
$xdb.delete(_id)
$xdb.deletes(query)
$xdb.changeType(query, type)
$xtk.get(type, key)
$xtk.modify(type, key, updater, upsert)
$xtk.delete(type, key)
$order.get(_id)
$order.search(path, query, option, cache)
$order.count(path, query, cache)
$order.modify(_id, updater)
$order.create(type, desc, total, x, y)
$order.delete(_id)
$order.deletes(query)
$order.changeType(query, type)
$wx.sendText(openid, txt)
$wx.sendNews(openid, article)
$wx.sendTemplate(openid, url, template_id, data)
$wx.syncOrder(_id, onConfirm)
$wx.refund(_id, sum, reason, onConfirm)
申请退款,传入原订单_id,退款金额,退款缘由。接口成功执行后(并未确认)将返回退款详情,通常状态是PROCESSING(退款处理中)。需要一段时间退款才能得到确认。零钱支付的退款5分钟内到账,银行卡支付的退款1-3个工作日到账
可以传入退款确认回调表达式onConfirm,即微信支付退款确认到账后执行的表达式,执行上下文是订单详情。
$wx.syncRefund(out_refund_no)
$socket.send(from, to, type, x, opt)
由于后端接口不一定是人触发的,不能用登录用户_id作为消息发送方,因此必须传from
参数,
另外还多了opt
选项:{ sendBack: false, cc: [] }。
sendBack:是否要给接口调用者也回发一次消息,前端是一定会回发的,后端默认不回发。
cc:抄送列表,同时也发送给其他人。
$api.request(url, option, body)
$api.clearCache(path)
$api.valiCode(to, code)
验证发给指定手机号/邮箱的验证码是否有效。
即Redis缓存DB,用于临时存储数据。
$rdb.set(key, value, ttl)
插入一条字符数据value,缓存时间ttl
(Time To Live)最大值为600秒,默认为60秒。
Reids是内存数据库,应节制使用,平台会阻止10分钟内超过1000次value长度超过1000字符的操作,或10分钟内超过10000次的操作。
$rdb.get(key)
取得key的数据
$rdb.del(key)
删除key的数据
search()在前后端的用法相同,但表现有所差异。
前端取得数据后会把arr
数组里的每项数据都存放在对应表路径下,比如$product.search()取得的数据会放到$c.product里;同时也会把arr
数组原样到到all
列表里已方便翻页的时候继续把下一页取得的数据合并到all
列表里。
后端是不做这两项工作的。比如把页面request中search到的列表展示到可翻页的表格中,可以用$c.x.path.arr || $c.x.path.all,这样就可以兼顾前后两端了。