006-实践博客系统

作者: 卖梳子的鲤鱼 | 来源:发表于2016-12-05 11:57 被阅读26次

基于json的数据传输设计 - 实践博客系统


  1. 脱离贫困 - 满足基本需求
  2. 走向小康 - 丰满格式设计
  3. 提升精神 - 添加容错机制
  4. 加强品质 - 加固安全机制
  5. 开放眼界 - 整体框架设计
  6. 追求真理 - 实践博客系统

  1. 需求说明
    • 用户模块
      • 用户注册
      • 用户登录
      • 异地登录退出上一个客户端
      • 自动登录
    • 文章模块
      • 查看文章
      • 发表文章
      • 修改文章
      • 删除文章
  2. 接口设计
    • 全局公共返回值(添加了一个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,该接口signtoken为空
      • 接口地址 : {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,该接口signtoken为空
      • 接口地址 : {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,该接口signtoken为保存的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
      }
      
  3. 异地登录策略
    • 系统有一个固定self_token:md5(应用名称),
    • 当用户调用USER_LOGIN或者USER_REGISTER注册登录时,获取用户的UA和当前的timestampuser_id
    • uatimestampuser_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

有空再细细修改完善

相关文章

网友评论

    本文标题:006-实践博客系统

    本文链接:https://www.haomeiwen.com/subject/wkvkmttx.html