基于json的数据传输设计 - 实践博客系统
- 脱离贫困 - 满足基本需求
- 走向小康 - 丰满格式设计
- 提升精神 - 添加容错机制
- 加强品质 - 加固安全机制
- 开放眼界 - 整体框架设计
- 追求真理 - 实践博客系统
- 需求说明
- 用户模块
- 用户注册
- 用户登录
- 异地登录退出上一个客户端
- 自动登录
- 文章模块
- 查看文章
- 发表文章
- 修改文章
- 删除文章
- 用户模块
- 接口设计
- 全局公共返回值(添加了一个
400
)- 200 : get resource success
- 400 : logout
- 403 : forbidden : {developer ? error_msg : error_info}
- 404 : not found this api , please sure your server url
- 500 : system error : {developer ? error_msg : error_info}
- API001 : USER_LOGIN
- 功能简介 : 用户登录,该接口会刷新
token
,该接口sign
的token
为空 - 接口地址 : {server_url}/user/count/login
- 接受参数 : |tel |string |not null |电话号码:11位置 |
|pwd |string |not null |密码:md5加密 |
- 返回参数 :{ 201 : 账户或者密码错误 | 202 : 账户被封锁 | 203 : 登录次数过多}
{ "code":"200", "summary":"success", "data":{ "id":"1 ### 用户的id", "name":"冬追夏赶 ### 用户昵称", "icon":"http://img_url ### 图标地址", "token":"idJDidjendksjcndkflskdnidjfndnfj" } }
- 功能简介 : 用户登录,该接口会刷新
- API002 : USER_REGISTER
- 功能简介 : 用户注册并自动登录,该接口会刷新
token
,该接口sign
的token
为空 - 接口地址 : {server_url}/user/count/register
- 接受参数 : |tel |string |not null |电话号码:11位置 |
|pwd |string |not null |密码:md5加密 |
- 返回参数 :{ 201 : tel格式错误 | 202 : tel已注册 }
{ "code":"200", "summary":"success", "data":{ "id":"1 ### 用户的id", "name":"冬追夏赶 ### 默认昵称", "icon":"http://img_url ### 默认图标", "token":"idJDidjendksjcndkflskdnidjfndnfj" } }
- 功能简介 : 用户注册并自动登录,该接口会刷新
- API003 : USER_INFO_GET
- 功能简介 : 获取用户信息,如果该该接口会刷新
token
,该接口sign
的token
为保存的token
,如果token
是在3天内生成的,则将返回新的token
- 接口地址 : {server_url}/user/count/info
- 接受参数 : |user_id |int |not null |用户的id |
- 返回参数 :
{ "code":"200", "summary":"success", "data":{ "id":"1 ### 用户的id", "name":"冬追夏赶 ### 默认昵称", "icon":"http://img_url ### 默认图标", "token":"idJDidjendksjcndkflskdnidjfndnfj" } }
- 功能简介 : 获取用户信息,如果该该接口会刷新
- API004 : ARTICLE_GET
- 功能简介 : 博客文章获取
- 接口地址 : {server_url}/user/article/get
- 接受参数 : |user_id |int |not null |用户id |
- 返回参数 :
{ "code":"200", "summary":"success", "data":[ { "id":"1 ### 文章id", "title":"如何看待es2015 ### 文章标题", "create_time":"2016-12-2 ###文章从创建时间", "detail":"http://img_url ### 文章正文" }, { "id":"1 ### 文章id", "title":"如何看待es2015 ### 文章标题", "create_time":"2016-12-2 ###文章从创建时间", "detail":"http://img_url ### 文章正文" } ] }
- API005 : ARTICLE_CREATE
- 功能简介 : 文章创建
- 接口地址 : {server_url}/user/article/create
- 接受参数 : |user_id |int |not null |用户id |
|title |string |not null |标题 |
|content |string |not null |文章正文 |
- 返回参数 :
{ "code":"200", "summary":"success", "data":-1
- API006 : ARTICLE_UPDATE
- 功能简介 : 文章更新
- 接口地址 : {server_url}/user/article/update
- 接受参数 : |user_id |int |not null |用户id |
|article_id|string |not null |文章id |
|title |string |not null |标题 |
|content |string |not null |文章正文 |
- 返回参数 :
{ "code":"200", "summary":"success", "data":-1 }
- API007 : ARTICLE_DELETE
- 功能简介 : 文章创建
- 接口地址 : {server_url}/user/article/delete
- 接受参数 : |user_id |int |not null |用户id |
|article_id|string |not null |文章id |
- 返回参数 :
{ "code":"200", "summary":"success", "data":-1 }
- 全局公共返回值(添加了一个
- 异地登录策略
- 系统有一个固定
self_token
:md5(应用名称)
, - 当用户调用
USER_LOGIN
或者USER_REGISTER
注册登录时,获取用户的UA
和当前的timestamp
和user_id
- 将
ua
和timestamp
和user_id
按字母顺序拼接成formdata
:timestamp=1498786723&ua=firebox&user_id=1
- 将上一步结果以
self_token
为作为salt
,做加盐md5
加密:md5(token+md5(timestamp=1498786723&ua=firebox&user_id=1))
- 将上一步结果保存起来作为该用户独有的
token
- 当用户异地登录的时候,
token
将会刷新,此时拥有旧token
的用户调用任何接口将返回400
,达到异地登录 - 当用户登录后,退出应用,再回来将会调用
USER_INFO_GET
,如果此时token
刷新token
,达到自动登录 -
token
三天有效,如果三天内用户没有进入应用,也就是没有调用USER_INFO_GET
,也将会返回400
- 系统有一个固定
有空再细细修改完善