1. 如何创建一个地球号的SDK
本节介绍如何创建一个地球号的SDK。地球号的第一个SDK是BrowserSDK。是一个完整设计的SDK。本节参考BrowserSDK来讲解如何创建一个其它语言的SDK。
1.1. 应用的生命周期
任何一个应用的生命周期独有如下几个环节:初始化,登陆,路由,请求服务。应用的一次运行就是一次初始化,多次登陆,许多次路由,和很多次服务请求组成的。尽管不同应用会因为语言不同,架构设计不同,其生命周期不一定能优雅的分解成这四部分。但都可以通过稍微刻意拟合成这四部分的组成。
在一个页面我们可以多次请求后端服务,例如,多次查询。所以请求服务的次数要多于路由的次数。
1.1.1. 浏览器应用生命周期
环节 | 说明 |
---|---|
初始化 | 首页加载的时候 |
登陆 | 登陆页面,当登陆token过期的时候,不管在用户浏览到哪个页面,都要跳回到登陆页面 |
路由 | 页面路由发生变化的时候,比如,前一页,后一页,点击切换页面 |
请求服务 | 当页面向后端服务发起API请求的时候 |
1.1.2. 移动端应用生命周期
环节 | 说明 |
---|---|
初始化 | APP启动的时候,例如安卓里的onCreate |
登陆 | 登陆页面 |
路由 | APP页面发生切换的时候 |
请求服务 | 当APP向后台发起API请求的时候 |
1.1.3. 桌面端应用生命周期
环节 | 说明 |
---|---|
初始化 | 可执行程序启动的时候,初始化的时候 |
登陆 | 登陆页面 |
路由 | 可执行程序在切换页面或者模块的时候 |
请求服务 | 程序向远程后台请求服务的时候 |
1.1.4. 命令行应用生命周期
这里我们假定:一个命令行应用是典型的守护进程应用,典型的应用是nginx,httpd。这些应用定时重启,运行后,在模块间进行切换,每个模块里可能要访问多次其它服务。
环节 | 说明 |
---|---|
初始化 | 程序启动的时候 |
登陆 | 登陆页面 |
路由 | 程序在模块间切换的时候 |
请求服务 | 程序向远程后台请求服务的时候 |
1.2. 实现SDK
根据上面所提的应用的四个环节,SDK要按照如下规则实现。SDK一定要有个类,类的方法一定有构造函数,initialize,isLogin和其它命名好的方法。虽然这样的规则设计过于生硬,限制了程序设计者的个性。但统一的SDK设计会让地球号的使用功能者很方便的在多个SDK间理解。
环节 | 接口 | 规则 |
---|---|---|
构造函数 | construct(key,secret) | 根据key和secret构造对象 |
初始化 | initialize() | 在localstorage中查看有没有有效的token,如果没有,就要获取匿名token,并存放到localstorage里 |
登陆 | login() | 通过用户名和密码登陆,登陆成功后会把匿名token换成登陆token存入localstorage |
路由 | isLogin() | 在每个路由的时刻,应用都应该调用isLogin接口来判断当前token代表的用户登录是否是还在有效期,isLogin就需要拿到localstorage里的token到gettoken接口去解析token内容并判断vtl字段 |
请求服务 | *() | 在每个请求里,如果错误码返回4011,就表示令牌过期,需要跳转到登陆页面 |