为什么应用和API构建需要使用不同的语言?

日期: 2014-07-30 作者:Michael Ogrinz翻译:蒋红冰 来源:TechTarget中国 英文

从稳定性到安全性,为什么在应用开发和API构建中使用不同的开发语言,本文介绍了几个原因。

关于API构建常常忽略的一个问题是,“应该使用哪一种技术来构建API?”通常,关于语言和托管都是事后才做的决定。对于由C#编写的应用程序来说,API很有可能也是由C#编写的,托管在因特网信息服务器上。基于Java的应用程序的SOAP 或REST API很可能是由Java编写,托管在可用的J2EE容器中。

所有应用程序,他们是由哪一种语言支持的,那么基于web的API通常也是由与应用相同的堆栈构建的。表面看来这似乎是常识。API团队和应用开发团队可能是同一个。除了共享技巧和知识,他们还要努力共享应用用户和API客户之间的基础设施。这是最好的行动吗?

选择不同的开发语言构建公共API有多个原因,有稳定性、安全性和质量的原车。这里有几个需要考虑的地方。

托管

应用程序的内部托管环境要以现有的内部用户为基准。这一环境不论是否提供双重功能来支持外部客户或从整体上进行复制,它都不会专门设计来满足API的不同用途。最好的情况是? API执行缓慢。最糟糕的情况是?现有用户受到影响。

安全性

从合同的角度看,应用程序和它的API必须交织在一起。API能显露的功能是最后能由基础系统支持的功能。当API和应用程序都是由同一语言编写时,API和应用程序之间漂移(drift)的可能性就会增加。

这是一个很容易就掉进去的陷阱。开发人员改进或修复代码都是使用现有的API方法。开发人员测试前端而不是API,来确定更改是否成功。只是因为前端测试案例成功,并不意味着API就不会受到影响。应用变更可能会向外部暴露不良信息,或影响API性能。负责API构建和测试的独立团队应该有能力识别并预防API漂移,把它作为日常开发周期的一部分。

稳定性

过去几年,几个平台都显示出自己的脆弱方面,要么负载不行,要么易受恶意攻击。如果在公司内部运行其中一个平台,稳定性可能并不需要担心。但是,一旦在防火墙的另一边运行,就有理由担忧了。

质量

谨记,良好的设计师意味着了解受众。当初始应用和API由同一个在同一个平台上开始时,那么API就密切地反映着应用程序的结构。这通常距离开发所寻找的东西很远。

他们并没有(或不想)熟悉应用程序的编写方法,来绑定一系列的API调用,从而达成特殊目的。他们是不同的类的客户,他们的需求需要特殊考虑。在不同的平台上构建API将很难区分现有的产品和它的API。否则,就会出现API可用性的风险。双团队结构秘密促进了API的精炼,是内部对话而不是公共论坛。

当然,托管API在备选平台上还有其它一些原因。例如,当API使遗留技术可用时,就别无选择了。从备选语言中,很有可能找到更便宜的、性能更好的语言。另外,可能会用到日常的基础设施和更有利的许可协议

一些大型公司已经拥有了跨平台的技能和财产,所以决定使用不同的语言构建API并不会那么勉强。对于培训新员工或构建新基础设施,小公司能会有所畏惧。如果决定在常见平台上开发和部署,那么讨论备选方案没有任何成本,它可能只是帮助找出所选方法中的弱点。

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

翻译

蒋红冰
蒋红冰

TechTarget云计算主编,主要负责云计算和虚拟化网站的内容建设。长期专注于IT前沿技术,对云计算、虚拟化、人工智能、区块链等技术都有了解;对行业趋势、市场动态有一定的洞察。

相关推荐

  • 如何选择开发语言?

    和API构建相关的常被忽略的问题是,应该使用哪种技术构建API?通常来说,关于语言或者托管方式的决策有些一厢情愿。