API设计如龙生九子 各不相同

日期: 2014-06-19 来源:TechTarget中国 英文

日前,全球领先的IT咨询管理公司CA Technologies对API产业做了个问卷调查,问卷内容涉及API设计风格以及管理部署的新动向。调查对象是CA的客户,截至目前,共计收到180份来自API管理领域的专家或相关企业的回复。

调查结果表明,JSON与XML可谓两分天下,50.5%的投票给予了JSON,47.8%的票数落在了XML。

在Web技术服务方面:

  • 43.5%的产品支持CRUD,18.8%的受访者会考虑增添该支援;
  • 41.9%的产品支持SOAP;19.1%的受访者会考虑增添该支援;
  • 26.3%的产品支持Hypermedia(超媒体);28%的受访者会考虑增添该支援。

其中,有以下四种最为开发者熟悉和使用的风格:

一、Tunneling Style(隧道式风格)

隧道式设计之前一直是最广泛采用的方案,与之对接的Web服务的技术通常是SAOP。而从近10年的情况来看,SOAP APIs的采用率出现了下滑,以下给出了导致该状况的几点分析:

  • SOAP对于开发者来说较复杂且难掌握;
  • SOAP对基础架构要求较高,在移动端的使用更是寥寥可数,因为过于庞大;
  • SOAP有极其严格的格式要求,因此开发者的自由与创新受到限制。

隧道式API的典型用户有eBay和PayPal。其特性包括:

  • 提供组件级别的接口;
  • 在域中对对象组件进行绑定;
  • 发布和确保终端的安全;
  • 以XML为中心的信息格式。

尽管SOAP的采用每况愈下,但对端对端通信安全性以及第三方认证有特殊需求的企业来说,SOAP仍占一席之地。

二、URI Style(通用资源标识符风格)

由于原生的网络属性,通用资源标识符风格可能是目前最广为人知而使用又最为广泛的设计样式了;相对于隧道式,它就显得平易近人多了。

采用URI的代表作有,Box(网盘) API以及StackMob(云后端服务) API。如果对Box API感兴趣,可以参阅ProgrammableWeb一篇对其深度剖析文章,链接请点击这里。

其特性包括:

  • 基于对象级别的接口;
  • 在域中对对象进行绑定;
  • 对URIs和查询参数进行预定义;
  • 执行CRUD(增加、查询、更新、删除)操作。

在公共APIs、移动端和网络应用程式中,URI风格被广泛使用,同时可用于访问以SOAP为后台的旧系统数据以及网络服务。

三、Hypermedia Style(超媒体风格)

超媒体风格API以图形、声音、动画等超媒体元素为设计之本,建基于REST风格,REST是由Adobe高级技术专家、Apache联合创始人Roy Fielding提出的。

应用超媒体风格的例子有PayPal REST APIs以及Elastic Path(电商平台)Cortex Hypermedia API。

其特性包括:

  • 基于消息级别的接口;
  • 对消息进行绑定;
  • 与REST相结合;
  • 拥有属于自己的URIs;
  • HATEOAS(Hypermedia As The Engine Of Application State,超媒体的状态应用引擎)。

超媒体风格的最大好处是任何针对API工作流的变更,都不会影响当时使用该API的应用。此外,其延展性良好,能持续对客户端应用以及服务提供支援。但是,在该风格越来越受到大众青睐的同时,不少开发者认为在使用中需要面临不少的困难。来自CA的Nadareishvili指出:“对于大型分布式系统来说,超媒体风格是个很好的解决方案。特别是在不对用户使用过于限制或需要长时间才能完成的大规模变更场合,尤为适合。因此,具体情况具体分析,复杂度与有效度两者间的天枰,需要开发者好好衡量。”

四、Event-Driven Style(事件驱动风格)

属于新鲜事物的事件驱动风格在近几年取得不错的发展。典型例子如WebSocket协议,提供了客户端和服务器端的全双工数据传输模式。此外,CR8 CREATE 3D文件打印分析API也是采用该风格的。

其特性包括:

  • 客户端/服务器端单独或联合对新事件进行监听;
  • 被传送的事件是由异步消息产生的。

事件驱动风格的使用范围相当广泛,例如:可以把事件驱动风格应用程式与浏览器相结合,作为通用的客户端配置;可用于社交类和实时通信类的应用程式;可用于信息密集型应用程式,如网游;可用于实时交易数据场合,如股票信息查询;可用于实时商业智能数据浏览和分析参合。

写在后面

API风格如龙生九子,各有异同;但有时很难明确界定某API就是精确从属于某个风格。同时,在应用中也有可能出现混合风格的情况。因此,企业在执行项目前,需要进行周密严谨的评估与分析,以确立主体的风格取向来最大程度地满足商业目的。尽管这个过程可能是漫长且困难的,但是能明确的一点是:选择自己所熟悉的。因为这样,才能明确各个项目阶段的细节;即使失败,也能对错误环节进行有效的分析,回滚变更或重拟项目计划。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

  • SAP收购CallidusCloud 与Salesforce竞争

    一直被称为后台办公巨头的SAP现在似乎也想在前台办公大展拳脚。 最新的迹象是SAP收购CallidusClou […]

  • 数字化转型:如何更好地利用API和微服务

    API,即应用程序编程接口,它提供给应用程序、开发人员访问其它应用的能力,而又无需访问源码,无需理解内部工作机制细节;简单地说,API就是实现应用与应用连接的一种隐形的桥梁。

  • 金融行业数字转型:利用API构建新IT基础

    从制造业、物流业,银行业到零售业,各行各业的根基都因应用经济的兴起发生着深刻的变革。在互联网和智能手机普及化的推动下,这种现象变得司空见惯。到2021年 ,蓬勃发展的全球应用经济的预估总值将达到6.3万亿美元,相比2016年的1.3万亿美元,增长近5倍。

  • 如何使用Azure API管理服务?

    在云和微服务架构时代,API是数字化业务的通用语言。根据分析公司Forrester Research预测,仅在美国,API管理工具的支出将在未来5年内达到近30亿美元。