前沿
Good API design is hard! 几篇传送门文章。
设计原则
- 只做满足当前需求的,经受住明天问题的诱惑
- 完备
- 不冗余 提供最小的功能集合。
- 清晰简单
- 易于学习 接口设计有统一的范式
- 可扩展
- API版本控制.可以把版本号放在请求url的根目录下。
-
本地API设计
API设计的比较好,对将来的扩展或者理解都有很大帮助。
- 一致性。有open就需要有close对应。
- 对称性。
add(object) addAll(objects) remove(object) removeAll()
- 返回值。保持一处返回,返回结果类型一致。
HTTP API 设计
- 简单 隔离。 通过请求的不同部分来隔离,使事情简单化。
- 指定版本号
- 支持Etag缓存
- 为每一个请求包含一个Request-id字段。可以跟踪 诊断和调试请求。
- 返回合适的状态码。
- 请求body使用json数据。
- 资源名/行为。 如。runner/{id}/actions/stop