[关闭]
@buoge 2018-01-12T11:59:31.000000Z 字数 1975 阅读 1222

安姐技术管理课:API设计原则:加密,签名,调用堆栈方案设计

程序构建


http://www.jianshu.com/p/9c2a8676b8d1

https://www.jianshu.com/p/e2f88335b455

https://github.com/oldratlee/translations/blob/master/api-design-principles-from-qt/README.md?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io

验证签名

用户证书,白名单机制

调用方申请App Key 和 App Secret

联想到当前的api系统中,每一个用户单独生成app key,appsecret
这样子,在log过程中根据appkey,收集日志会比较清晰,好排查,二者,根据appkey获取一个请求的全过程,便于排查错误,

分布式系统中,把请求的日志过程传递给每一步骤,一旦出错,在当地排查就行,可以记录一个request tag的id,具体记录存在第三存储,如mogodb,redisd,等,
* 进去请求先先去堆栈拿一下调用的过程信息
* 或是出错的时候在打印也行,
* 或是不在本地打印,直接去堆栈库查看

restfull,幂等

尽可能与客户端无关

wap,app client,wx 小程序,插件小程序,尽可能一致,

Api 框架

设计中的平衡

团体中要有一定的规则,无规则不成方圆,不限制的自由,相当于没有自由,随着规模的增大,还是需要指定响应的规则和约束,保证大家,工作和任务的框架一致性

现在设计还是未来设计?

结合当前业务,将来可能用到的考虑一步,再多就不现实了,你我都知道这系统变化的能力,某些方便讲不受主观意志的控制

可维护性与效率和进度

尽可能的多用抽象和封装,复用,代码性能,质量与工期进度,需要自己在现实场景用做权衡,一般工期进度会靠前,workaround的概念也与此息息相关

AOP

好处,切面编程,关注点分离,将特定领域的问题从代码逻辑业务中分离出来

缺点,各个流程被分离,起来,一个完整的流程,如果要分析,整理,调试,会增加时间。

aop 切面的粒度,还需要自己根据业务场景,复杂度,人员情况,工期进度,做出权衡

All about priority and tradeoff

api 签名,api 设计原则,api 框架,编程语言,人员情况,项目情况,进度情况,将来的扩展
... 尽可能的考虑更多的条件,在各个条件中做出权衡和取舍

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注