首页 > 基础设施 > 正文

REST式的服务开发需要同时考虑API和SLA

2012-07-06 16:22:29  来源:TechTarget中国

摘要:企业组织需要思考,一个开发者在进行开发或REST式的服务开发时的需求。以及思考在应用程序接口(API)部署之后,维持服务水平协议(SLA)所需的基础设施。
关键词: REST SLA A

    企业组织需要思考,一个开发者在进行开发或RESTful的服务开发时的需求。这个过程中的一些最佳实践包括保持REST接口的简单和一致性,发生异常时提供良好的错误反馈。此外,企业组织还需要思考在应用程序接口(API)部署之后,维持服务水平协议(SLA)所需的基础设施。


    公司的技术使团副主席克里斯?哈达德(Chris Haddad,)说,将治理应用到RESTful的 应用程序接口(API)中,对于依赖于它们的业务流程来说是很重要的。


    一个托管的应用程序接口(API)需要使用SLA以一种安全的,已验证的,授权的和受保护的方式激活,以供使用。要管理好RESTful应用程序接口(API)面临着很多挑战。潜在的消费者可能不信任应用程序接口(API)的稳定性,可靠性或性能。API也存在安全隐患,可以导致不能发布和提供开放访问。


    应用程序接口(API)有两个治理水平。设计时间治理着眼于如何建立一种没有状态的资源,有一个支持安全的,面向资源的URL公约。运营治理着眼于应用程序接口(API)的平均与峰值吞吐量需求,以确保有保证的服务级别协议(SLA)。这种治理形式,着眼于消费的客户,以及所需的硬件和软件配置,以支持他们的需求。它也需要有一个系统来监测应用程序接口(API),这个系统应该具有这样的能力,当检测到故障时,通过手机短信或电子邮件通知管理者。


    哈达德建议,坚持使用HTTP协议,包括为RESTful服务所提供的GET,POST,PUT和DELETE方法。企业组织需要确保,这些方法实施起来没有副作用,或以意想不到的方式改变系统的状态。例如,PUT应该在恰当的地方更新资源。GET,HEAD,OPTIONS和TRACE方法则不应该修改任何东西。


    哈达德还建议使用状态图(SCXML),它为控制应用程序接口(API)提供了一个状态机符号,这种符号可以纳入到批准模型。SCXML得到各种工具的支持,包括IBMRational Software Architect(是一个专门面向端对端软件交付,应用设计、建模和开发工具软件),SCXMLgui,还有未来的


    保持简单


    在最近的一次网上直播中,APIgee公司的产品副总裁布赖恩?穆罗伊(Brian Mulloy)说,在应用程序顶部建立一个虚拟层是一个很好的开端,这样可以在任何逻辑下把开发人员隔离开。这使企业组织能够微调应用程序接口(API)的逻辑,这些变化不会给开发者造成负担。他强调了一些应用程序接口(API),比如Salesforce.com已经更新到第20版,它可能给开发者造成困惑。


    他还建议保持版本名称简单,参考用一个“v”后跟一个整数的形式。其中加入小数点版本号可能会导致开发者的焦虑,认为它可能会不断的更新。


    虽然在设计REST抽象原则的时候很容易迷失,更重要的是简化开发人员的周期。这包括减少访问服务所需的URI.Web应用程序可以广泛的使用POST,GET,PUT和DELETE命令来减少资源数量。


    由于习惯问题,穆罗伊还建议,资源应该被指定为名词,因为这些能更好地满足开发人员的期望和思想。然而,在提交算法的响应时,动词是非常有用的,比如货币转换的要求。


    穆罗伊还表明需要更多具体命名的资源。例如,他指出,英国广播公司(BBC)使用“项目”的高层次抽象概念,来向所有的不同的资源提出请求。它能激发开发者去看博客,新闻,报告和视频剪辑等资源的兴趣,因为这样能让编程变得更自然和简单


    有效的REST接口错误报告是帮助开发者编写工作代码,和发现Web应用程序底层错误的一个重要方面。“错误是应用程序接口(API)可视性的关键部分之一,”穆罗伊说。开发者不仅在开发过程中要访问应用程序接口(API),它也将在程序外部部署之后帮助他们找到问题。


    穆罗伊建议应用程序接口(API)将错误信息转换成标准的HTTP错误代码。例如,Facebook返回没有任何额外注释的专制数字,这使人感到困惑不已。相比之下,Twilio把代码插入到HTTP状态代码中,并提供了更精细的错误消息。


    这种事前工作就减少了开发人员解析代码的时间。在生成代码更复杂的情况下,Twilio也提供了一个URL地址,将其信息传回开发者社区网站。这有助于为开发人员提供了一个论坛,更迅速地识别和纠正编程错误。


    服务的认证方式是各式各样的。一些网站如PayPal,已经开发了自己专有方法,穆罗伊建议企业采用OAUTH 2.0,从而简化开发人员在访问受限制服务时的工作。


    用更好的消息简化资源


    虽然在设计RESTful应用程序接口(API)时,常见的做法一直把重点放在更全面的URI上,迈克?阿蒙森,Layer 7公司的的首席应用程序接口(API)架构师认为把重点放在更好的消息上,而不是直接协议方式上更有意义。他写道,“事实证明,创建一个功能强大的API的关键,是在各方之间来回发送消息的设计。可靠和可扩展的API设计不是基于函数调用和共享对象,而是基于超媒体式的消息。”


    为了满足这一需要,为了解超媒体类型,阿蒙森已经致力于研究一个框架,使用一个名为H-Factors的概念。这些可用于创建一个具有灵活性,可用性和长寿的应用程序接口(API)的网页。在这种情况下,URI可以保持简单,并且可以通过扩展支持的消息类型添加新的功能。
 


第三十四届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:zhangyexi

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。