基于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
- 系统有一个固定
有空再细细修改完善