阅读更多

3顶
1踩

企业架构

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

2015-01-20 10:09 by 副主编 mengyidan1988 评论(0) 有4712人浏览
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原理分析并实现断点续爬以及分布式...

  • 只需要用一张图片素材文档选择器.zip

    只需要用一张图片素材文档选择器.zip

  • 浙江大学842真题09-24 不含答案 信号与系统和数字电路

    浙江大学842真题09-24 不含答案 信号与系统和数字电路

  • 无标题baci和jbaci

    无标题baci和jbaci

  • 完整的雷达系统仿真程序,完整的雷达系统仿真程序 matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

  • 实体商品销售源码最新优化.zip

    实体商品销售源码最新优化.zip

  • 戴尔存储MD1400机柜维护操作与安全指导

    内容概要:本文档详细介绍了戴尔存储MD1400机柜的安全注意事项、电源指示灯解释、故障排除方法以及硬件维护步骤,包括卸下和安装直流电源设备、硬盘驱动器和背板的具体操作流程。 适用人群:IT运维人员、数据中心管理员和技术支持工程师。 使用场景及目标:在维护和管理戴尔存储MD1400机柜时作为参考指南,确保正确安装和故障排查,避免安全隐患和设备损坏。 其他说明:文档提供了丰富的图文指导,帮助使用者更好地理解和执行相关操作。

  • PyClass 课程计划.zip

    PyClass 课程计划Noisebridge Python 课程每周一晚上 7 点至 9 点(太平洋时间)在旧金山 Noisebridge 二楼电子室举行。自 2024 年 8 月起,该课程目前暂停。请参阅 wiki 页面了解更多信息。本课程免费!如果您希望捐款,请捐赠给 Noisebridge。建议捐款15 美元、50 美元、200 美元以上建议每月捐款每月 10 美元、20 美元、40 美元、80 美元以上所有 Python 课程均遵循Noisebridge 反骚扰政策、 Noisebridge 冲突解决指南和 recurse.org 社交规则课后,我们欢迎您提供反馈! 在此提交表格内容课程课程描述新生阅读迭代次数Noisebridge Python 课程至少早在 2015 年就已经存在,拥有许多不同的讲师和版本。从 2017 年到 2018 年,该课程似乎由Jared Garst负责。(?)。从 2023 年到 2024 年,该课程由Travis Briggs负责。如果您有其他关于此类历史的信息想要分享,请在此处创建 PR、

  • 自动化部署管道创建的代码库(含 Concourse 和 Jenkins 相关).zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。

Global site tag (gtag.js) - Google Analytics