包车预约App
假设现在需要开发一个用于包车预约的App,提供给某些小区的居民进行免登录预约订座。本文将说明如何结合使用小白接口进行快速搭建。
知识点
知识点 | 说明 |
---|---|
使用的数据 | 元数据、计数器、集合数据 |
涉及的接口 | 应用计数器 - 获取计数器、应用计数器 - 设定计数器、应用计数器 - 更新计数器、应用集合数据 - 添加元素、应该元数据 - 获取元数据、应用集合数据 - 获取集合列表 等 |
需求原型
温馨提示:以上数据,纯属虚构。
主要界面及功能说明如下:
- 包车预约首页:选择路线后和出发日期后,显示当天的包车时刻表。
- 订座页面:进入订座页面后,可输入手机号和姓名,便可完成订座操作。
- 订座成功页:订座成功后,提示相关信息。
下面将分别进行说明,讲解。
包车预约首页
首先,先来简单分析下前面的数据。总共有三块数据,分别是:
包车路线(应用元数据)
对于包车路线,在这里是一个下拉框,可以选择出发地点与目的地。由于较为简单,这里使用元数据来直接存放。并且由于是全局的,并需要支持游客访问,因此需要使用应用元数据。
登录小白管理后台,添加以下应用元数据。
即所添加的元数据是:
{
"list": [
{
"line_name": "天河 到 增城",
"line_set_key": "tianhe_to_zhenceng",
"status": 1
},
{
"line_name": "增城 到 天河",
"line_set_key": "zhenceng_to_tainhe",
"status": 1
}
]
}
在这里,配置了两条路径,分别是:“天河 到 增城”和“增城 到 天河”,line_set_key表示下面时刻表的集合名称,status表示状态,1为有效,0为暂停运营。后续需要增加路线或者调整路线时,可在这通过后台进行修改。
成功创建后,可以看到:
出发日期(App日期控件)
出发日期不需要小白接口来存放数据,直接使用App本地的日期控件即可,日期只需要精确到天。
时刻表(应用集合数据+应用天计数器)
下面,重点说一下如果组装时刻表的数据。
首先,依然使用管理后台将班次的信息进行录入到应用集合数据。例如,对于需求原形图的第一条数据,可以这样录入:
所所添加的集合元素数据是:
{
"time": "09:00",
"type": "豪华大巴",
"price": "18",
"max_num": "55",
"car_no": "粤A 8888"
}
其中,time为发车时间;type为车型;price为票价;max_num为最大核定载客数;car_no为车牌号。值得注意的是,为了方便进行排序显示,这里我们使用了发车的整点时间作为权重,以便可以在客户端顺序显示。例如,09:00发车的权重为9,12:00发车的权重为12。
其他班次可类似依次进行录入添加,最终添加完毕后,后台效果如下:
至此,大部分的数据都是可以在小白管理后台进行录入配置的。客户端需要做的事情很少。只需要调用应用集合数据 - 获取集合列表接口获取上面的数据即可。如,获取某条线路下的时刻表,可调用接口:
http://api.okayapi.com/?s=App.Main_Set.GetList&key=tianhe_to_zhenceng&sort=3&app_key=16BD4337FB1D355902E0502AFCBFD4DF&sign=ABF7D4CBDFD0A57E823A9760D22637FA
成功情况下,会返回:
{
"ret": "200",
"data": {
"err_code": "0",
"err_msg": "",
"items": {
"0": {
"id": "2",
"key": "tianhe_to_zhenceng",
"data": {
"time": "09:00",
"type": "豪华大巴",
"price": "18",
"max_num": "55",
"car_no": "粤A 8888"
},
"keyword": "",
"weight": "9",
"add_time": "2017-10-14 23:45:16",
"update_time": ""
},
... ...
温馨提示:您也可以在浏览器直接访问此小白接口查看此数据。
接下来,重点说明如何获取动态的剩余票数。
很明显,剩余票数是每天都会重置的,因此很适合使用计数器来统计。客户端在获取到时刻表后,需要进行两步。
- 第一步:获取每个班次的天计数器,以便获得剩余票数。
- 第二步:若天计数器未存在,则进行设定初始化。
对于第一步,可调用应用计数器 - 获取计数器接口。为了区分不同的班次,剩余票数的计数器名称为:tianhe_to_zhenceng + 下载线 + 集合元素id。例如,第一班次的天计数器为:tianhe_to_zhenceng_2
。则待请求的接口链接为:
http://api.okayapi.com/?s=App.Main_Counter.Get&name=tianhe_to_zhenceng_2&type=day
如果看到返回的是:
{
"ret": "200",
"data": {
"err_code": "1",
"err_msg": "计数器不存在",
"value": "0"
},
"msg": ""
}
则再进行第二步,调用应用计数器 - 设定计数器,根据最大核定载客数设置最多可购买的票数。即待请求的接口链接为:
http://api.okayapi.com/?s=App.Main_Counter.Setup&name=tianhe_to_zhenceng_2&type=day&min=0&max=55
再次重新请求“获取计数器”接口,便可得到已经预定的票数。将计数器的最大值减去当前的值,即可得到剩余票数。
温馨提示:剩余票数 = 计数器的最大值 - 计数器当前值
若剩余票数为0,则表示已售罄。如果还有剩余票数,则可以进入订座页面 ——
订座页面
订座页面需要再次显示用户所选择的班次、包车路线和出发日期,以便乘客进行核对确认。确认无误后,需要乘客输入姓名和手机号,以便联系。当用户点击“确认无误,马上订座”按钮后,需要调用两个接口,分别是:
- 调用应用计数器 - 更新计数器接口,将剩余票数减1。
- 调用应用集合数据 - 添加元素接口,纪录预约乘客的联系信息。
对于更新剩余票数,请求的接口链接为:
http://api.okayapi.com/?s=App.Main_Counter.Update&name=tianhe_to_zhenceng_2&type=day
成功请求后,会返回类似 :
{
"ret": "200",
"data": {
"err_code": "0",
"err_msg": "",
"before_value": "0",
"after_value": "1",
"add_value": "1",
"value": "1"
},
"msg": ""
}
对于预约乘客的联系信息,集合的名称可以是:tianhe_to_zhenceng + 下划线 + 班次元素ID + 下划线 + 出发日期。集合元素的添加,这里不再赘述。
订座成功后,还可以在管理后台,快速查看每天计数器的纪录,以及对应的可视化图表。效果类似:
订座成功页
最后,是我们的订座成功页。这里大部分是App的交互,基本上不需要再与小白接口服务端进行通信。其中,座位号,客户可根据一定的规则生成。
彩蛋:如果获取顶部的广告图
留心的读者会发现,在App的顶部有一张很大的广告图,并且底部还有客服电话。对于这些全局的信息,我们也可以使用应用元数据进行轻松配置。例如,在小白管理后台录入添加:
然后,就可以在App客户端进行获取了!
为方便管理数据,还可以在小白后台添加快捷菜单哦。
小结
可以发现,结合小白接口,即使在缺少后端开发人员支持的情况下,客户端开发同学也可以快速搭建自己的App。是不是觉得很有趣?赶紧来试下吧~ 如果还没开通,可点击这里免费开通。