阅读更多

3顶
1踩

企业架构

原创新闻 设计优秀API七大要诀

2015-01-20 10:09 by 副主编 mengyidan1988 评论(0) 有4668人浏览
API
【编者按】越来越多的公司加入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
  • 大小: 207.7 KB
3
1
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 创业必备工作(转载)

    Axure :产品原型设计工具,如果产品经理对产品原型、交互演示、原型细节设计等的需求比较强烈,Axure RP是非常不错的选择。Axure RP 能让产品经理快速创建应用软件和基于Web的的线框图、流程图、原型页面、交互...

  • PHP程序员创业的正确打开方式

    Mockups:更加适合制作产品概念图,表达产品设计概念、理念和基本布局,手绘风,比较适合用来画线框图及原型,但不适合做带有交互性质的原型设计。 Axure:如果对交互演示、原型细节设计等的需求比较强烈,Axure RP...

  • 互联网创业必备工具盘点

    摘要:对于如今的互联网创业者来说,掌握一些实用的工具是非常必要的。...:产品原型设计工具,如果产品经理对产品原型、交互演示、原型细节设计等的需求比较强烈,Axure RP是非常不错的选择。Axure RP 

  • 据说这是最全的互联网工具集(转)

    今天就给大家系统盘点下互联网创业者必备的一些工具。 一、产品原型制作工具 ...Axure:产品原型设计工具,如果产品经理对产品原型、交互演示、原型细节设计等的需求比较强烈,Axure RP是非常不错的选

  • 互联网创业者实用的工具

    《写给大家看的设计书》:作者以其简洁明快的风格,将优秀设计所必须遵循的基本原则及其背后的原理通俗易懂地展现在读者面前。 六、创业类书单 《史蒂夫▪乔布斯传》 :乔布斯不一定是有史以来最好的...

  • 深入浅出react和redux个人阅读记录

    阅读深入浅出react和redux本书值得记录的地方 github源码:...第二章 设计高质量的 React 组件 1 React prop propTypes 检查 import PropTypes from 'prop-types'; Counter.p...

  • 创业必备工具

    对于如今的互联网创业者来说,掌握一些实用的工具是非常必要的。... Axure :产品原型设计工具,如果产品经理对产品原型、交互演示、原型细节设计等的需求比较强烈,Axure RP是非常不错的选择。Axur

  • 编写高质量的代码(1)

    第七:相信总可以解决任何问题.   稍后等于永不!   写代码要循序渐进,即写一段代码就运行检验一下; 对于程序员来说,简单、易读、高可维护性和复用性,这些才是重要的! 100W行代码,质的变化

  • C++Builder的基本功能

    我仍然要说VC也是一个很优秀的编程工具,但对于不想浪费无谓精力的编程初学者,我个人建议使用Borland C++Builder,因为它实现真正的对象封装,从而使你可以节省不低于80%的时间来学习编程本质的知识——就是我们常...

  • CSDN Blog 2005年08月08日 帖子列表:

    怎样成为优秀的软件模型设计者? 变量的定义和声明 内存分配 指针与数组的对比 Linux 下串口编程入门 POSIX操作系统的串行编程指南 Servlet中打出jsp的源代码 在Hibernate中实现复杂的数据映射 深入Struts 1.1 ...

  • Python爬虫开发学习全教程第二版,爆肝十万字【建议收藏】

    七、scrapy爬虫框架 scrapy的概念和流程 scrapy的入门使用 scrapy数据建模与请求 scrapy模拟登陆 scrapy管道的使用 scrapy中间件的使用 scrapy_redis概念作用和流程 scrapy_redis原理分析并实现断点续爬以及分布式...

  • 51单片机控制步进电机三轴联动51单片机控制步进电机三轴联动51单片机控制步进电机3轴联动c语言,抛砖引玉供大家参考。.zip

    51单片机控制步进电机三轴联动51单片机控制步进电机三轴联动51单片机控制步进电机3轴联动c语言,抛砖引玉供大家参考。

  • 数据库管理工具:dbeaver-ce-23.0.1-linux.gtk.aarch64-nojdk.tar.gz

    1.DBeaver是一款通用数据库工具,专为开发人员和数据库管理员设计。 2.DBeaver支持多种数据库系统,包括但不限于MySQL、PostgreSQL、Oracle、DB2、MSSQL、Sybase、Mimer、HSQLDB、Derby、SQLite等,几乎涵盖了市场上所有的主流数据库。 3.支持的操作系统:包括Windows(2000/XP/2003/Vista/7/10/11)、Linux、Mac OS、Solaris、AIX、HPUX等。 4.主要特性: 数据库管理:支持数据库元数据浏览、元数据编辑(包括表、列、键、索引等)、SQL语句和脚本的执行、数据导入导出等。 用户界面:提供图形界面来查看数据库结构、执行SQL查询和脚本、浏览和导出数据,以及处理BLOB/CLOB数据等。用户界面设计简洁明了,易于使用。 高级功能:除了基本的数据库管理功能外,DBeaver还提供了一些高级功能,如数据库版本控制(可与Git、SVN等版本控制系统集成)、数据分析和可视化工具(如图表、统计信息和数据报告)、SQL代码自动补全等。

  • 数据库管理工具:dbeaver-ce-23.1.5-macos-x86-64.dmg

    1.DBeaver是一款通用数据库工具,专为开发人员和数据库管理员设计。 2.DBeaver支持多种数据库系统,包括但不限于MySQL、PostgreSQL、Oracle、DB2、MSSQL、Sybase、Mimer、HSQLDB、Derby、SQLite等,几乎涵盖了市场上所有的主流数据库。 3.支持的操作系统:包括Windows(2000/XP/2003/Vista/7/10/11)、Linux、Mac OS、Solaris、AIX、HPUX等。 4.主要特性: 数据库管理:支持数据库元数据浏览、元数据编辑(包括表、列、键、索引等)、SQL语句和脚本的执行、数据导入导出等。 用户界面:提供图形界面来查看数据库结构、执行SQL查询和脚本、浏览和导出数据,以及处理BLOB/CLOB数据等。用户界面设计简洁明了,易于使用。 高级功能:除了基本的数据库管理功能外,DBeaver还提供了一些高级功能,如数据库版本控制(可与Git、SVN等版本控制系统集成)、数据分析和可视化工具(如图表、统计信息和数据报告)、SQL代码自动补全等。

  • java某百货店POS积分管理系统-积分点更新生成以及通票回收处理(源代码+论文)

    java某百货店POS积分管理系统_积分点更新生成以及通票回收处理(源代码+论文)

  • 南京邮电大学电工电子实验B实验二(传输网络的幅频和相频特性)

    南京邮电大学电工电子实验B实验二(传输网络的幅频和相频特性)

  • 模电LM324.ms14

    大二模电课设——基于四运放芯片LM324的组合电路

  • VB+ACCESS酒店服务管理系统(论文+系统).zip

    VB+ACCESS酒店服务管理系统(论文+系统)

  • Java小游戏之愤怒的小鸟.zip

    Java小游戏之愤怒的小鸟

Global site tag (gtag.js) - Google Analytics