2017.8.5 更新:
- 新增微信通知功能
- 新增api版本概念
- 配置中心优化,团队管理员权限放开。团队管理员可修改团队成员信息、数据库、token、测试服务器、微信公众号等
- apiList 改为按更新时间排序
- 修复其他bug
- 背景(后端角度来看):新项目/新版本需求->需求分析->整体设计:理清有哪些对象及其之间的关系、需要持久化哪些数据、哪些数据需要缓存、需要哪些组件产于等,最关键的要清楚各个对象数据的流向及生命周期
- 后端:编码、开发接口->登录本API系统->新建/修改API->API通知(Email/Web/微信)
- 前端:
- 被动:收到通知->登录本API系统->查看指定接口
- 主动:登录本API系统->API列表->搜索接口->查看接口
原有的api通知(后端开发完毕发布接口通知客户端)不及时,如Email通知、网页通知都需要用户主动获取。 为了让客户端伙伴及时收到最新api动态,开发了微信通知,因为基本所有人都用微信、微信APP的手机通知基本不会被屏蔽。
- 1、团队管理员先在配置中心配置微信服务号appid及secret;
- 2、团队管理员联系本API系统开发者协助确认其微信公众号是否可接入或需要配置;
- 3、团队成员(API查看)在个人设置扫码绑定微信;
- 4、团队成员(API编辑)新建或编辑接口时选择已绑定的成员进行微信推送;
在前后端API交付场景中,前端主动查看API列表时,很多时候无法当前版本后端都新增/修改了哪些接口,所以才提出了版本号的概念。
API版本号是一个API的一个集合属性。比如,有一个登录接口,它的版本号属性是List,[{version:1.0},{version:1.1}]。 app新版本(1.2)需求需要修改该接口,修改后将新版本号1.2 加入上述List中,修改后的List未[{version:1.0},{version:1.1},{version:1.2}]
这里说的API版本号是指客户端app版本号,随着版本演进而不断增大。
我们有个前提假定,客户端不同版本同一个功能(比如登录)调用的是同一个接口且该接口最后一次修改后仍可适用于老版本。 如果说你要新老版本调用不同接口,这其实新需要登记一个新的接口,不需要使用本功能。
继续,api有了版本号后,客户端伙伴查看api列表时就可以:
-
更精确的查看API,只看新版本相关的接口,比如上述登录接口例子中的app新版本1.2。 因为,只有这些接口是客户端开发新版本需要的。 这样避免了客户端伙伴通知收不到、主动查看api更新又难以找不到重点的尴尬。 尽管有WEBsocket通知也是一次性的,客户端可能不止一次查看新版本相关api更新
-
更好的维护年久失修的api。有些调用少的可怜、被产品砍掉废弃的api,都可以通过api版本号进行搜索到。 随后,我们可以优化或移除这些接口的相关代码
- 新建或修改api可设置更新版本,记录此次更新对应的版本号
- 除了手动输入外,也可选择已有版本(管理员配置中心配置或手动输入后自动加入配置)
- api搜索可按版本号搜索,如搜索等于某个版本号的api,这样可以实现一个小功能,即客户端伙伴可以查看最新开发的版本更新了哪些接口