【编者按】越来越多的公司加入Open API行列,那么,设计师该如何设计出优秀且据吸引力的API呢?要知道,良好的接口设计可以降低系统各部分之间的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合度,从而提高系统的维护性和稳定性。
一个超棒的API必定经过一番精心设计,肯花大量时间、站在用户角度思考问题,这样用户使用起来才会事半功倍。那么这样的API需要具备什么样的条件呢?
有的放矢
APIs不单单是程序的复制品。它是在我们的核心应用不能解决问题时,担当数据分析的角色。
如果一味追求“做到所有想做的”,那么我们的APIs可能会因此变得臃肿而过于复杂。所以 好的API必须追求用户体验,有切实可行的目标 。
追求极简
如果一款应用的某个功能一时是 A一时是B,那么用户将会给逼疯的。 Dropbox核心API 在简化这方面就做得不错。其面向的操作对象是单一的,提供了读取metadata,读取/下载数据共三个操作。开发者可以方便地使用它来进行二次开发,做出功能更丰富的应用。
简易的说明
简明扼要的文档能让用户在短时间内掌握相关的使用方法,缩短开发用时,比方说 Github 提供的使用说明。这些将能有助于用户了解不同的使用场合,从而更有信心地创建更复杂的应用。
支持 OAuth2协议
OAuth2.0是 OAuth协议的下一版本,更关注客户端开发者的简易性。想象下如果登录程序时不仅需要用户名/密码还得需要安全令牌,那么难道你不想立马换一个程序吗?
事实上,目前几乎所有的 API都是这样做的。因此用户不得不花费多余的时间来完成用户认证。认证是需要的,但用户可不这样想。所以不妨参考下 OAuth2 规范 对此作出改善。
多权限设置
当用户被要求对第三方应用进行权限认证时,考虑最多的一个问题是:这对于我的个人数据有什么影响?
很多时候,答案是所有权限,这难免会让用户觉得存在风险。 GoogleDrive API 做得就不错,它允许开发者对权限进行管理。这样做出的程序会让用户感觉舒服。
清晰的错误或无误信息反馈
开发者在使用 API过程中可能会出现错误,或许是不熟悉,或许是收到了限制;无论是什么,我们建议,以HTTP错误代码形式加以说明。
及时的、清晰的反馈有助于用户明白错误的来龙去脉。 HTTP错误码一般不会引起歧义并含有清晰的错误阐述,所以建议由此入手。
提供变更检测机制
APIs一般是透过 internet进行访问,如果不对每个调用进行检测,那么很有可能会加重服务器和用户带宽的负担。因此使用合理的变更检测机制(如 ETags )进行检测是很有必要的。
以上所说的或许看起来比较基础,但是我们应该引起重视;坚持从源头抓起,从小处着手,才能做出最终让用户满意的作品。
来自: Medium