什么是API,以及为什么它们很重要

采用系统的方法解释API是一件非常困难的事,我们不妨先用一个简单的比喻来了解API的实质。无论你用的什么手机,华为也好、苹果也罢,当你需要让自己的手机与电脑进行数据传输时,我们总是需要一条数据线。因此,事实是如此简单,数据线充当的就是API的功能

值得注意的是,API存在的时间与我们拥有编程语言的时间差不多,而且“API经济”作为最近一个热门的领域常常被人们挂在嘴边。这就涉及到了另外一个问题,为什么API如此重要?同样的,我们引用另外一个比喻:

在非常早期的时候,汽车制造商是垂直一体化的企业。基本从铁矿石和煤炭开始制造钢铁,一直到生成零部件,然后组装车辆进行售卖。随着业务的成熟和产业规模的扩大,汽车制造商可以购买别人生产的零部件,整个公司只提供一个关键零部件就可以了,例如发动机。

这就触及到了API之所以如此重要的核心点:它们允许公司访问其他人提供的功能,而不是必须在内部构建所有的功能。

最著名的例子之一就是Stripe。通过API提供一个完整的支付服务套件,Stripe使成千上万的公司能够建立一个业务(例如一个电子商务网站)去处理支付功能,而不用自己编写相应的代码。在这里,API是一种技术,可以让公司专注于自己的专业领域。重要的是,API被设计成其他软件可以使用,这使得基于组件的软件工程或应用程序可以被更加轻松的集成至一个更大的系统中去。

我认为,API能在当今技术和商业中扮演核心角色的最重要的发展就是人们开始意识到API可以作为端点在互联网上公开。这方面的早起工作包括XML-RPC(SOAP的基础)和最初在Roy Fielding博士论文中提出的RESTful方法。这是一个非常重要的转折点,哪怕是当初人们对于SOAP和REST的争论,在现在看来也是发展过程中不可避免的一环。

现在我们理所应当的认为,任何人都可以通过使用HTTP访问的API来公开他们的服务,而且构建和使用这些API所需的工具时可以被广泛使用的。

世界上现在导出都是软件公司,他们通过API提供支付处理、运输服务、信息传递、电子商务平台,这很像之前提到的老式汽车零部件供应商。对于这些公司来说,API是客户访问其产品的主要方式。甚至于有些时候,API似乎就是产品,因为这是公司最引人注目之处。

API不仅使公司能够专注于其主要业务并将支持功能留给其他人,而且还使他们能够提供自身可能无法提供的服务。例如,Stripe不仅拥有检测网络诈骗的专业知识,而且他们还拥有海量的历史数据,可以将其输入欺诈检测算法。而这些算法对于小型或中型公司而言,无论其专业水平如何,都是在短期内无法获得的。公司还可以提供超出其核心业务范围的额外附加服务,例如,航空公司可以通过调用合作服务商的API来提供旅游保险,出行服务等等。

一个早期的著名API应用实例是Google Maps API,它支持一系列的创新实践。各种各样的数据可视化工具都是在它的基础之上建立起来的(例如当地的犯罪率、疾病暴发趋势等等)。但除此之外,它还催生了新一代的应用程序,例如共享骑行,如果没有地图和定位服务,这些应用程序时不可能诞生的。因此,这不仅仅是将现有的功能移交给第三方,还是新功能的实现着。就像Socket API促进了网络应用程序的增长,这在以前是根本想象不到的。

我还想强调一点,API不仅仅是从另一家公司访问服务的一种方式,也是公司内部沟通和协作的重要工具。早在2002年,Jeff Bezos就强制要求Amazon采用内部API,要求它们足够健壮以支持外部用户。虽然对于这个任务是否被市场真正接收存在一些争议,但至少这个概念是十分合理的。如果团队能够保持API的稳定,他们可以专注于开发自己的功能而不会破坏其他团队的工作。它还为AWS奠定了基础,这本质上是使一些内部API(及其背后的服务)公开可用的结果。

我对于API的发展将如何改变基础设施的构建和管理方式很感兴趣。我们必须进行互联的主要对象不再是机器和路由器,二是通过API进行通信的服务。一个突出的例子是服务网格的兴起:我认为服务网格是管理策略、可见性、访问控制等的工具,而且它通过API进行通信传输。

类似的,API网关(比如Kong)是这个新世界基础设施的重要组成部分,它提供身份验证、负载平衡、速率限制等服务。项目的创始人Thomas Graf在一次演讲中很好的总结了这一点。

API的飞速发展意味着我们需要工具来管理它们的复杂性。有成千上万的API可供使用,怎么才能找到我想要用的呢?这就催生了API store(例如RapidAPI)。我们不能因为有API这个方便的工具就忽视了将其他人的功能集成到自己复杂系统中的挑战。

在讨论API时,乐高积木经常被当做一个类比,不同的是API之间缺乏标准化制式,而且将一个API连接到一个更大代码体重需要更多的工作。而不仅仅是“插入进去”,幸运的是有大量的工具可以帮助我们解决这种复杂性,比如“连接器”可以使整个过程更像乐高。

《计算机网络:系统方法》的作者Bruce Davie认为之所以我们现在对API如此关注,20多年前开始的RESTful API开始是一个很大的原因。这正如汽车行业必须达到一定的规模,才能让企业只生产一个部件。软件产业现在已经足够大了,尤其当你接受所谓的“软件吞噬世界”此类的说法时更是如此。因此,和汽车工业不再生产自己的钢铁一样,大多数公司都希望利用API来提供更好的服务,以增强他们的产品和服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GitMore

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值