近几年,API经济纷纷崛起,无论是国外还是国内,众多厂商积极开放API。开发者很多时候是要借助这些API,才能轻松构建出一款应用,极大地提高开发效率和开发质量。文中整理了一份API服务清单,内容涵盖:监控/调试、CDN 、数据库、仪表盘、支付、通信等方面!

从2011年开始,数据通过API开发出来已成为一种趋势,与此同时它也逐渐发成为企业的核心业务。据不完全统计,国外知名站点ProgrammableWeb收录的新API就达到数万个,而且还在不断增长中。

利用丰富的第三方API,开发者轻松构建出一款应用,极大地提高开发效率和开发质量。而对于厂商而言,他们似乎更乐意将API推向市场,比如通过创建API社区、社交网络等,因为这样更有利于把产品推向市场,从而达到共赢。

有的人甚至将API作为构建成功Web应用程序的关键因素之一(提高API采用率的六大方法)。原文作者RANDALL DEGGES发表了这篇博文《API-Driven Development》,笔者对此文进行了摘译。

译文如下:

作为一名开发者,诚然编写代码如同作家提笔挥毫,非常有成就感与乐趣,但同时我也觉得删除代码是件不相伯仲的美事。为什么呢?因为在进行删除工作时,意味着自己找出了造成干扰的位置,意味着找到了冗余无用的代码,甚至是找到了能用更少代码实现相同功能的途径。代码越少,意味着出错的几率越低。

我的观点是:利用好第三方API,减少自己的代码工作量,让出错的概率尽量降低。只有这样,我们才可以把更多精力放到更核心的开发工作或业务逻辑思考当中去。

我们没有想象中聪明

一名善于阅读和思考的程序员,想必是出众的程序员,譬如正在浏览本文的你。但是无论我们多么优秀,一个无法避免的事实是我们写的代码绝不可能零错误。

最合理的时间利用,不是为每一个项目都进行重复建设,依葫芦画瓢。更好的时间分配是我们能持续打造更令人惊叹的应用,不断推陈出新。

如果要为应用添加日志功能,Loggly足可为我们节省三年左右的开发时间;如果要为应用添加用户管理和身份认证模块,Stormpath已做得足够完美。如果仍不满意,还是觉得自己才是最好,那么我们必须为此付出额外的时间,金钱,技术,同时还得兼顾维护,安全,托管等问题。

因此,如果有现成可用的一群技术大咖为我们铺好了前进道路,我们为什么还要敬而远之舍近索远呢?充分利用API服务,进行有效整合,才是明智的选择。

效率优先

不要把时间浪费在不必要的环节上。我们的目标是为客户打造最好的应用,而不是7x24小时地守候在计算机旁,关注程序运营中的每个细节。

此外,难道我们的竞争对手还会自己来打造非核心的程序组成部分吗?面对紧张的竞争局面,我们必须充分且合理地分配资源,让自己尽可能地走在对手的前面。

工具和解决方案

以下作者整理了一个API服务清单,一方面希望能让你的开发过程变得轻松,另外一方面希望能帮你节约时间,精力和努力。

认证/授权(Authentication / Authorization)

Stormpath—把应用中有关用户管理的部分都放心交给它好了,其功能包括:安全地存储用户信息,管理用户权限,快速地进行邮箱验证和密码重置。

分析(Analytics)

Keen.io–能完美地进行自定义分析。

CDN:

CloudFlare –搭载CDN与DDoS攻击保护功能!

Fastly–令人惊叹的CDN API,速度奇快,定制自由度高。

CRM:

Intercom–使用简便,功能全面。

仪表盘(Dashboards)

Ducksboard –界面精美,直接高效的API,能方便地进行项目数据查阅。

Leftronic–同样精美的设计,个人认为它对地理信息支持更好。

数据库

Bonsai–使用强大的RESTful搜索引擎ElasticSearch。

Heroku Postgres–最好的PostgreSQL托管服务。

MongoHQ–个人喜爱的MongoDB数据库供应者。

OpenRedis–我会一直使用的Redis服务提供者,永远不会弄丢数据,可扩展能力强。

部署/托管

Heroku–一个不错的托管公司。

Flynn–建造于Docker之上,Heroku的有力竞争者。

邮件

Sendgrid–透过API来发送邮件,非常简单。

日志

Loggly–易用的日志管理工具。

监控/调试

New Relic–如果曾经错过它,你会发现是多么地遗憾。它能提供丰富的性能/监控信息。

RunScope–非常有用的调试和监控API服务。

支付

Stripe–极好的信用卡相关交易处理者。

Coinbase–最好的比特币交易服务提供者。

实时处理

 Firebase–强大的实时数据存储和同步API。

Pusher–让Web socket通信变得简单。

存储

Amazon S3–几无对手的文件存储和文件流服务API。

通信

OpenCNAM–智能来电显示和识别。

Twilio–易用的电话和短信平台。

测试

Travis CI–提供了单元和综合测试服务,包含公共免费和专项收费的服务级别。

写在最后

打造一款明星级产品绝非易事,而透过利用API服务,我们或许可以极大地提高工作效率,拥有更多时间来思考核心业务逻辑。

开发者应该了解的API技术清单的更多相关文章

  1. 开发者应该了解的API技术清单!

    英文原文:API-Driven Development 作为一名开发者,诚然编写代码如同作家提笔挥毫,非常有成就感与乐趣,但同时我也觉得删除代码是件不相伯仲的美事.为什么呢?因为在进行删除工作时,意味 ...

  2. 【转】开发者应该了解的API技术清单

    [转载贴] 作为一名开发者,诚然编写代码如同作家提笔挥毫,非常有成就感与乐趣,但同时我也觉得删除代码是件不相伯仲的美事.为什么呢?因为在进行删除工作 时,意味着自己找出了造成干扰的位置,意味着找到了冗 ...

  3. (转)Java API设计清单

    转自: 伯乐在线 Java API设计清单 英文原文 TheAmiableAPI 在设计Java API的时候总是有很多不同的规范和考量.与任何复杂的事物一样,这项工作往往就是在考验我们思考的缜密程度 ...

  4. GitHub万星项目:黑客成长技术清单

    最近有个GitHub项目很火,叫"Awesome Hacking",这个项目是由Twitter账号@HackwithGithub 维护,喜欢逛Twitter的安全爱好者应该了解,在 ...

  5. 转:GitHub 万星推荐成长技术清单

    转:http://www.4hou.com/info/news/7061.html 最近两天,在reddit安全板块和Twitter上有个GitHub项目很火,叫“Awesome Hacking”. ...

  6. GitHub 万星推荐:黑客成长技术清单

    GitHub 万星推荐:黑客成长技术清单 导语:如果你需要一些安全入门引导,“Awesome Hacking”无疑是最佳选择之一. 最近两天,在reddit安全板块和Twitter上有个GitHub项 ...

  7. GitHub上个最有意思的项目合集(技术清单系列)

    没有1K以上的星星都不好意思推荐给大家!林子大了,啥项目都有,这里给大家搜罗了10个Github上有趣的项目.如果你就着辣椒食用本文,一定会激动的流下泪来...... 1.一行代码没有 | 18k s ...

  8. 用ASP.NET Web API技术开发HTTP接口

    开发工具 Visual Studio 2013 SQL Server 2008 R2 准备工作 启动Visual Studio 2013,新建一个ASP.NET Web应用程序,命名为SimpleAP ...

  9. 用ASP.NET Web API技术开发HTTP接口(一)

    开发工具 Visual Studio 2013 SQL Server 2008 R2 准备工作 启动Visual Studio 2013,新建一个ASP.NET Web应用程序,命名为SimpleAP ...

随机推荐

  1. Laravel5.1 关联模型之后操作

    之前写过关于模型关联的笔记,但是模型关联好后的一些使用没有介绍,今天补上 1 写入关联模型 1.1 使用Save方法(一对多) 我们准备了两个模型:Post和Comment. 它们的关系是一对多关系. ...

  2. 【黑金原创教程】 FPGA那些事儿《概念篇》

    简介一本讲述非软硬片上系统的书,另外还是低级建模的使用手册. 目录[黑金原创教程] FPGA那些事儿<概念篇>:File01 - 结构的玩笑[黑金原创教程] FPGA那些事儿<概念篇 ...

  3. Android FragmentActivity 给Fragment传值

    1.Fragment给Activity传值 定义一个在fragment 中 定义interface 监听器,让activity实现,并将activity的引用传递给fragment.即setListe ...

  4. Android上几种Animation和多个动画同时播放以ScaleAnimation应用详解

    在API Demo的View->Animation下可以找到四个Animation的Demo,第一个3D Translate比较复杂,最后再讲,先讲第2个Interpolator.该Activi ...

  5. 厚积薄发系列之JDBC详解

    创建一个以JDBC链接数据库的程序,包含七个步骤 1.加载JDBC驱动 加载要连接的数据库的驱动到JVM 如何加载?forName(数据库驱动) MySQL:Class.forName("c ...

  6. angular4 *ngFor获取index

    angular 中的*ngFor指令的使用 <ul> <li *ngFor="let item in items">{{item}}</li> ...

  7. 用wamp实现前端和php的交互效果

    我们今天来用php来做一下前台与后台的交互效果,首先我们先打开这个软件. 看一下电脑右下角的小图标 当变成之后鼠标左键 打开这个之后点击第二个之后会打开一个网站 点击右面页面的数据库打开新建数据库,填 ...

  8. Yii框架2.0的控制器

    控制器是继承[[yii\base\Controller]]类的对象,负责处理请求和生成响应. 具体来说,控制器从应用主体接管控制后会分析请求数据并传送到模型, 传送模型结果到视图,最后生成输出响应信息 ...

  9. centos7修改hostname和hosts

    1.修改/etc/hostname vi /etc/hostname 打开之后的内容是: localhost.localdomain 把它修改成想要的名字就可以,比如:master 保存退出 2.修改 ...

  10. 使用arc进行code review

    https://secure.phabricator.com/book/phabricator/article/arcanist_quick_start/ 使用流程: 流程 本部分来自arcanist ...