API策略与实践大会于2015年11月在德克萨斯州奥斯汀市举行。在作完主题演讲后,InfoQ采访了Dion Hinchcliffe,了解他对Web API未来发展方向的看法。
根据10多年的深厚经验,Dion阐述了REST及简单设计如何影响了Web API在Web服务上的最终流行的历史。鉴于Web API在企业的应用日益广泛,Dion阐述了API、平台及网络的过去、现在和未来。
InfoQ:您能向我们介绍下自己的背景和主要工作吗?
Dion Hinchcliffe:我目前是7Summits的首席策略官。我们为开发者社区提供类似API这样的东西。我也在数字领域做大量的研究和分析,并为ZDNet和其他网络媒体写文章,我还写了两本有关这个领域的书。
InfoQ:您大约在10年前开始Web API研究。最初是什么激发了您的兴趣?
Dion:API第一次真正引起我的注意,是在开发者社区真正开始对REST和更传统的重量级Web服务进行对比讨论的时候。
数据刚开始显现出,面向Web的API,越简单就越受欢迎,也越容易使用,而且能够更好地与开发工具、技术、甚至是常规的企业应用程序协同。
那会儿,Amazon刚好发布了SOAP和REST的流行度对比数据,显然,旧式的Web服务根本就不受欢迎,而围绕Web上的Web服务,有些令人兴奋的事情正在发生,就是我们现在所说的API。
InfoQ:与您最初对Web API的设想相比,我们今天的情况有什么最显著的不同?
Dion:关于轻量级API,我非常高兴,API市场和开发历程有许多都跟我的预期很像。我记得,我曾期望有更多的创新。我们看到了类似JSON这样的东西出现,为创建更加轻量级的Web服务提供了一种可选的方式。
我记得,我曾期望工具支持比最初的需求多,尽管那是重点,但在此之前,人们在像Eclipse这样的平台上做着许多繁琐的Web服务,还要提供存根,等等,而现在你看到,那是没有必要或者不需要的了。
鉴于我已经预测了整个的安全行业,最大的惊喜也许是与安全主题相关的。虽然早就预测到了,但最初那些简单的API模型已经用实际证明了其良好的弹性,并且几乎能够满足所有人的安全需求。
InfoQ:在典型组织里,Web API达到了什么样的成熟度水平?
Dion:关于技术,有意思的是,它的应用相当地不均匀。真的不能说有典型组织,早期采用者,就像采用API一样,常常非常早。
但是我认为,完全可以说,一般公司都已经完全了解API并使用了它们,但不是战略上的。API科室或API部门仍然是领先的技术组织或者创业公司的一个与众不同的特征。
InfoQ:对于那些典型的组织而言,Web API最有价值的应用场景是什么?
Dion:最主要的应用场景包括企业应用集成、工作流、移动应用及集成第三方云服务,现在,它将会在不远的将来用于物联网。
InfoQ:您经常谈论开放API支持数字转型的重要性,但是最终,支撑移动应用、Web应用及其他UX的内部API对公司而言不是更重要吗?
Dion:每家公司都应该使用他们自己的狗粮,并成为自有API的第一个客户,就是说,不管怎样,大部分API首先应该是内部的。当然,通过在组织内部学习如何生产和消费API,公司就可以提升组织API的成熟度。
但是,随着外部API引入,内部API输出,我们看到,API需要做好一切准备,而且可以以任何方式使用,因为服务会重新混合,数字体验就是从许多以前完全不同的源和API创建出来的。
InfoQ:开放API已经推动了API的流行,但是最近,一些公司,像Netflix和Twitter,已经开始关闭它们,而许多公共API项目正在争夺开发人员的心里份额。您认为这是一种趋势,还是个例?
Dion:我希望他们是证明规则的例外情况,但是人们越来越相信,API在早期发展阶段非常有益于公司的发展,但是当公司成为领导者时,它会成为一个不利条件。
但是,你同样可以很容易地举出反例,如Expedia、eBay和Amazon,对于他们而言,API是他们主要的商业模式,因此,显然还没有定论,而毋庸置疑,API对于公司早期阶段的发展而言至关重要。
InfoQ:API管理供应商大部分将自己定位成介于遗留IT资产和新用户体验之间的网关,包括Amazon及其新推出的AWS API网关。另一方面,像IFTTT、Uber或Twilio等原生云公司正在构建分布式API网络,扰乱了传统业务。对于一个传统公司而言,在设想Web API时,什么比喻才恰当?
Dion:我认为两者皆有,但更多的是后者。网关是一个先决条件,否则你无法访问生态系统。因此,没有一个,你就不可能真正拥有另一个,但是,一旦进入市场,API的设计应该提倡和培养一种健康发展的数字生态系统。因此,在我看来,它们并不互相排斥。
InfoQ:您认为,公司最终需要为每种用户体验或交互通道构建一个定制的API,像Netflix正在做的那样,还是说大多数公司最好都创建一个通用的API?
Dion:对于任何通用的东西,我总是持谨慎态度,特别是在数字技术与人类需求复杂的交叉点上。无疑,许多公司始于单个的API,但产品的成长成熟及外部客户很快就会教给他们单一模型是否是恰当的方法。我认为,一种更微妙的方法通常更合适。
InfoQ:与RPC变体相比,如谷歌不久前宣布的gRPC项目,REST对于Web API的整体价值和成功有多重要?
Dion:毫无疑问,REST已经成为开发API基本模型的基础,因为它与Web本身的工作原理是如此的一致。但是,它永远不会成为所有场景的答案,尤其是一些在Web最初设计时没有预见到的东西,如视频、实时通信及其他更加现代化的场景。
我认为,工作时要使用合适的工具,同时要尽量靠近核心标准。
InfoQ:关于PaaS最终是否会凌驾于IaaS之上并被广泛采用一直争论不断。关于这一点,您有什么看法?
Dion:任何设计,限制越多,应用场景就越少。这方面,IaaS和PaaS没有差别。
IaaS适用的场景要多得多,几乎可以用于所有的计算机和网络场景,而PaaS适用的领域要小很多,因此,又回到了框架之争的问题,框架越大越复杂,本身在解空间受到的限制就越多。
因此,与PaaS相比,IaaS的使用总是更广泛,适用面更宽。显然,PaaS市场巨大。我希望两者都会蓬勃发展,但一个总是会比另一个大。
InfoQ:您谈到公民开发者是指那些能够使用恰当的工具进行基本开发的业务用户。对于公司而言,您认为这已经成为开发软件解决方案的一种切实可行的方法了吗?
Dion:我认为,我们正处在这样的时候,一般的组织都已经具备了这样做的条件。自API实际出现开始,大公司已经这样做了许多年了。API一出现,这类工具就出现了。这太不可思议了。
现在的模型,除了非常简单的事件驱动应用程序之外,是由公民开发者构建用户体验和简单的应用程序流,而由IT人员帮助填写和完成应用程序逻辑。这是一个非常令人兴奋的领域,有足够的证据表明,我们正处于公民开发者大量涌现的早期阶段,再一次,是API让这一切成为可能。
InfoQ:企业用户本身是需要提供或消费API呢,还是说需要技术要求低一些的模型,如连接器、电子表格、和表单?
Dion:我很高兴API在非技术用户社区里获得了更广泛的理解,但是我们真没看到一种可以完全取代它的有效的方式。
我认为,用户将类似简单“应用”这样的概念理解为一个不够稳定的功能和数据单元,因此,在现如今的低代码环境下,数据源常常同提供数据源的应用混淆,例如,从Weather.com获取天气预报数据,而不是Weather.com
API,而后者是才是数据的真正来源。近来,人们一般认为,应用是数据源,而API是真正做工作的,所以我想这也没事。
InfoQ:有关分布式网络和平台的强大功能,您谈了许多。在这方面,API有多重要?它们是战略上的、战术上的,还是说仅仅是公司的一个技术面?
Dion:这样,在下午的大会上,我在这里同API拓荒者John Musser探讨了这个主题,API本身对于实现我们正在谈论的高度分散的系统仍然非常关键,而那种系统是创建成功的数字企业所需要的。
但是现在,位于API层之上的“元概念(meta-concepts)”其战略重要性日益增长,正变成一项同API本身一样的核心研究。
我要提一下John Hagel的团队在Deloitte所做的工作,他们的生态系统模式表明,在API体系结构之上还有一个重要的步骤,就是架构层。
这就是三、四年来我们已经真正理解的东西,而那就是战略讨论真正的发展方向。
查看英文原文:A Discussion of the Past and Future of Web APIs with Dion Hinchcliffe