客户端开发的几点建议

  • 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在弹出错误的时候,携带出来。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iOS网络架构讨论梳理整理中。。。 其实如果没有APIManager这一层是没法使用delegate的,毕竟多个单...
    yhtang阅读 5,277评论 1 23
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,686评论 25 708
  • 今天跟朋友去了咖啡店… 我品尝了一杯提拉米苏奶盐蛋糕奶茶。 酥散的朱古力粉 绵软的雪糕 一中杯 配上哥特风滤镜 简...
    培米尔阅读 512评论 0 4