客户端开发的几点建议

  • https
    通信层面的加密,防止中间人攻击及dns劫持,https带来更多的消耗
  • 内容签名
    作为第三方平台,通信秘钥只是保护了外人无法窃听,但不能保证平台的使用者互相调用。私钥+内容签名 确保了平台间的使用者不能互相串门。通信秘钥到店铺级别,每个店铺一个,允许变更。
    签名算法比较多,可以借鉴微信或者淘宝的签名算法,目前是本司采用的是md5签名算法。
  • trace机制
    提供友好的trace机制,traceID一般被内部服务使用,客户端到请求采用requestID来作为标示,requestID一般可以采用uuid 来作为请求ID
  • cdn使用与否
    cdn对于图片及比较大的文档类有较好的作用,但是对于交易类的实时性较高的没用太大作用。(这里指的是传统的cdn,非直播视频类的cdn)。
  • get vs post
    get请求更类似一种幂等请求,由于传统的cdn只支持get语法,因此我们无法像淘宝,京东的类似所有的api都是post方式。
    get和post的方式应该尽量符合restful的语义描述
  • 小流量路由
    发版机制需要保持ABtest和灰度机制,这些借助于服务的路由机制,路由需要有个路由key,我们支持到店铺级别的路由发版机制,因此路由key需要跟店铺相关,店铺一旦绑定后会有唯一的shopToken来识别是哪家店铺,shopToken在服务端来做路由规则,无需在传递shopID。token即为路由key。
  • 统计
    客户端的类型 appKey,appName
    客户端的版本 appVersion
  • 日志
    核心交易及数据日志
    相关设备状态统计日志
    崩溃等错误日志
    用户操作日志
pc及移动客户端的改进
  • 支持https
  • 支持appKey,appVersion
  • 核心交易日志统计及上传
  • 绑定及用户登陆统一切换到token和passport
  • 支持requestID作为traceID,requestID在弹出错误的时候,携带出来。

你可能感兴趣的:(客户端开发的几点建议)