记录一次对现有app目录结构接口的重构,合理的重构让我们的代码更加优美和简洁,也让我们的项目更加容易维护。
题图:from Google
引子
在web开发中,针对app的后端接口设计是有别于传统网页接口设计的。之所以存在这种差异,主要有以下几点原因:
- 数据量
按需返回,app需要哪些数据就返回哪些数据。如果返回多余的数据,很明显会浪费流量,但是更重要的会影响传输效率与响应时间。 - 接口数量
app更希望一个页面对应一个接口,而传统网页则要求不高,此处主要是考虑到http传输效率。众所周知http包会包括多个数据头,真正需要的数据可能还不及数据头大,因此接口减少,有利于提高传输效率。 - 接口版本控制
随着app不断迭代发版,app使用的新旧接口变化,后端需要面对如何应对管理的问题。(一种方法:使用参数中带版本信息,请求通过filter时进行解析然后分发)
背景
后端:RESTful接口
app:包括ios、android
接口数据结构:Json
当前app首页以及目录结构接口返回结构:
|
|
重构原因
- 缺少部分数据
很简单,在返回结构中加上所需数据就好。 - 实现后端控制跳转
- app中点击菜单或者图标会跳转到对应的目录或者页面,目前app采用的方式是在代码中写死路径。
- 现在考虑在返回结构中加上url,这样每个菜单或图标根据此url进行跳转
- 此举可以降低app代码的耦合度,并且,若有修改跳转url的需要,只需后端修改即可,无需重新发版
- 实现后端访问统计
对于现在web服务来说,经常会有统计访问量、统计访问来源等信息的需求。- 前端统计
主要使用不同厂商提供的统计服务,例如百度、友盟、flurry、google analytics - 后端统计
通过后台代码进行统计,合理入库并提供展示。使用后端统计意味着需要:- 前端在每次请求时都要携带特定参数用于统计,因此应该合理设计参数以减小对于传输效率的影响。
- 后端需要在每次接到请求时将对应统计参数进行解析处理
- 前端统计
重构结果
- 通过将跳转控制剥离到后端,降低app代码设计的耦合性
- 加入访问统计,日后可以分析用户行为
- 将接口结构与请求参数规范化,易于维护
重构后接口
|
|