大厂如何设计api
本文参考微信和支付宝的API设计,从「设计」,「可用性」,「安全性」三个方面分析API的设计思路;其中「设计篇」是设计一个api需要考虑哪些因素,「可用性」是一个api高可用的背后需要完成哪些技术点,「安全性」是API如何实现相互认证、安全通信等安全目标。
设计篇
RESTFUL风格
RESTFUL是一种API风格或者是规范,它有一些建议和规范指导如何设计好的API,到2010 年,大约 74% 的公共网络 API 是 HTTP REST的 API。
REST定义了一系列的标准方法
,如Get
、Post
、Create
、Update
、Delete
、List
等,来对资源
的操作。
下面是官方文档中两个比较好的参考资料:
API规范定义
返回码标识
返回码标识决定了这一次的请求是否是成功的,如果是非成功的那是因为什么原因失败了。
如Alibaba: API列表中可以看到,错误码InvalidTemplateName.Malformed
标记了模板名格式不正确,模板名不能大于30个字符
;只有给出良好错误码信息,才便于使用者进行调试与开发
数据交互格式
指定你的数据交互格式,比如json或者xml。
举例这里是微信支付: 下单API,我们可以看到它的数据交互格式是json。
同步、异步接口
业务定义
首先需要了解同步、异步业务的具体含义:
- 同步:请求在发出后,双方一直维持连接;直到对端返回数据或者超时断开
- 异步:请求在发出后,对方回复确认收到请求即