接口基于json数据传输的设计

008-面向接口开发

2016-12-05  本文已影响62人  卖梳子的鲤鱼

基于json的数据传输设计 - 面向接口开发


  1. 脱离贫困 - 满足基本需求
  2. 走向小康 - 丰满格式设计
  3. 提升精神 - 添加容错机制
  4. 加强品质 - 加固安全机制
  5. 开放眼界 - 整体框架设计
  6. 追求真理 - 实践博客系统
  7. 茶余饭后 - 整理细枝末节
  8. 团队合作 - 面向接口开发

  1. 面向接口的工作方式

    • 实时维护更新的文档
    • 唯一的系统设计者
    • 面向API的开发者
    • 健全的api测试体系和发布流程
  2. 实时维护更新的文档
    在应用开发中,我尝试过多种维护方式

    • 本地文件
      发布新文档导致开发者手中有多份,实时性不够
    • 在线自建静态web
      更新手段复杂
    • 在线文档 : UzerMe / google doc
      存在多份缓存
    • 在线实时文档 : 石墨
      没有更新提示
    • 在线api文档 : apiview
      符合所有要求
  3. 唯一的系统设计者
    所有的修改都应该经过系统设计者同意,然后更新到文档,同时api和客户端开发者同步更新,开发者之间只能讨论而不应该擅自修改设计,避免造成文档和实现不同意导致的维护性问题

  4. 面向API的开发者
    开发者应当在知晓业务流程的情况下面向api开发

  5. 健全的API测试流程和发布流程
    一个接口只有经过完整的测试才应该发布,在保证完成业务需求的情况下,还得保证接口的健壮性.
    比如一个用户登录的接口

    • 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"
          }
      }
      

    这时候存在这几种情况
    - tel 为空 pwd 不为空
    - tel 不为空 pwd 为空
    - telpwd 都为空
    - telpwd 都为空 , 但是 tel 不存在
    - telpwd 都为空 , tel 存在 但是 pwd 错误
    - telpwd 都为空 , telpwd 正确,但是账户被封锁
    我们只有在保证这些情况下接口都运行没有问题,才能发布这个接口给开发者,同时我们应当保留每个接口的测试,在下次修改的时候再次运行这个测试以保证接口的可用性和健壮性.


有空再细细修改完善

上一篇 下一篇

猜你喜欢

热点阅读