开发一个 App 联网已经是目前移动互联网的趋势,有时候为了提升 App 的弹性,可以不用考虑版本更新的问题,因此需要做一些后台数据配置,以及存放一些动态信息在后台,为此却必须要搞个服务器,架设数据库,还要考虑带宽,实在是有够麻烦!现在有一个联网神器跟大家分享,是近几年国外移动互联网的主流服务—— BaaS ( Backend as a Service ),有了 BaaS 这样的服务,联网再也不如以往艰巨(令人内心煎熬)。 举近半年内在国内移动互联网领域杀出来的 DroiBaaS 为例,只要写个 DroiObject ,数据就在云服务器上,如果需要更复杂一点的商务逻辑,写个云代码就好了。整个过程包含配置也不过就是 10 分钟的事(写完了还可以轻松抽根烟),真的是分分钟钟教你怎么写联网 App 啊!
云代码是被储存在 DroiBaaS 应用层的一种以 lua 脚本语言撰写的代码,能让应用客户端透过简单的 SDK 和 API 触发执行后回传结果,或自行定义排程时间与参数来定期执行云代码。详细的云代码规范请参考云代码开发文档。
云代码的操作可以简单分为三个部分: DroiCLI 初始化、撰写云代码、部署云代码。首先必须先从 DroiBaaS 官方网站下载DroiCLI。 DroiCLI 是一个终端机程式,功能是让我们可以管理云代码档案,并选择下载特定版号的云代码或是发布到开发及生产模式。详细的操作可以查看DroiCLI 开发文档。当我们写好了云代码,接着就要部署到 DroiBaaS 上,才能够开始被应用客户端使用。
Developer Token
droi init Developer Token
后并选择欲操作的 App.droi template
droi fetch
注意: 此动作会覆盖现行资料夹内所有档首先我透过droi template
获取到一个 sample.lua 的范本,对他重新命名以及参照云代码 SDK文件来进行开发。在这边的范例是一个捞取外部天气资料的云代码。可以看到我用到了三个云代码套件:
local _M = {}
local Logger = Droi.CloudLogger
local ws = Droi.WebScraper
local droi_object = Droi.Object
local role = "AaNpVYMBZJLxDDh9yq573jyK3HwxBbxG6a_k9cGL"
function _M.main(Parameters)
local resp_bool = false
local resp_message = ""
-- Query weather by WebScraper
local resultWS = {}
local httpStatus = nil
local scraper = ws.Scraper();
scraper.SetURL("api.openweathermap.org");
scraper.SetURI("data/2.5/forecast?id=524901&APPID=1a41f3f7e055102a11bcfeb91b2e721f")
httpStatus, resultWS = scraper.HTTPPost();
-- Check http status
if ( httpStatus == "200") then
local weather_data = cjson.decode(resultWS)
local droi_object = Droi.Object
-- Save data to droi object.
local obj = droi_object("WeatherForcast", nil, role, weatherData)
local resp = obj:save()
if (resp:isSuccess() == true) then
resp_bool = true
resp_message = "Update forcast successfully."
Logger.log(Logger.DEBUG, resp_message)
else
resp_message = resp:getMessage()
Logger.log(Logger.ERR, string.format("update fail, msg: %s", resp:getMessage()))
end
else
resp_message = "Fail to get weather data, httpStatus: "..httpStatus
end
local response = {}
response.bool = resp_bool
response.msg = resp_message
return response
end
return _M
DroiBaaS 的一大特色就是沙箱模式的设计,沙箱模式算是开发用的,其特点是有隔离仍在进行开发中的代码,让后开发的内容不会影响到线上的产品。要部署到沙箱模式很简单,在执行droi fetch
后也有对应的提示。 只要执行droi deploy sandbox
就可以将最新的云代码整包上传到沙箱模式的 App 。
当我们在沙箱模式上开发完毕,决定要将特定版号的云代码部署到生产模式也很简单。假设你决定将v0.0.9
这个版本部署到生产模式,只要执行droi deploy production
即可。
整个开发过程都会被记录在日志中,知道云代码是否被正确的执行。譬如上传的云代码有 Syntax errorc 或是该云代码不存在时,客户端执行云代码时会收到Code:1040001
,或是有 Runtime error 时,客户端会收到Code:1040003
。这时候 DroiBaaS 会将该次的除错信息记录起来,让我们可以从云代码日志中看到对应的信息而进行除错。另外,我们也可使用 Droi.Logger 类来进行自定义的信息输出到日志上。 两个模式的观看路径如下:
我们可以透过 DroiCLI 进行沙箱模式的云代码日志观看,或是从 DroiBaaS Web->云控中心->云日志->点击开始。
透经过路径: DroiBaaS Web->云控中心->云日志->点击开始.
DroiBaaS 将联网变得简单很多,整个过程上手了后真的花不到 10 分钟。最令人满意的是省了租服务器的费用,目前 DroiBaaS 的免费额度在众多平台来说还是最优惠的。 DroiBaaS 把 App 联网的难度大幅降低到初学者都能搞定的难度,只要会些基础代码,就能开发云代码,后台功能变得一点都不复杂! 10 分钟拥有后台能力,真的是可能的,试过就能感受到有多么方便好用!