Restlet框架与REST风格Web应用的角逐(上)

日期: 2009-11-11 作者:William Brogden翻译:杨晓明 来源:TechTarget中国 英文

很少有论文像Roy Fielding九年前的《架构风格和基于网络的软件架构设计》这么有影响力。在第五章中他提出了了网络架构的具象状态传输(REST)。以REST方式看待Web服务架构的想法传遍了开发者社区,令许多开发者倍受启发。REST的第一个工具包叫Restlet,在研究Restlet之前,让我们先考虑一下Fielding所陈诉的REST需求。

  最重要的需求是要做到对有限数量明确定义的操作的使用。对于Web服务,这些就是HTTP方法,GET,POST,PUT,DELETE,OPTIONS,和HEAD。例如,通过严格的 REST风格,GET操作在不产生任何负面影响的情况下仅返回一个资源状态……

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

很少有论文像Roy Fielding九年前的《架构风格和基于网络的软件架构设计》这么有影响力。在第五章中他提出了了网络架构的具象状态传输(REST)。以REST方式看待Web服务架构的想法传遍了开发者社区,令许多开发者倍受启发。REST的第一个工具包叫Restlet,在研究Restlet之前,让我们先考虑一下Fielding所陈诉的REST需求。

  最重要的需求是要做到对有限数量明确定义的操作的使用。对于Web服务,这些就是HTTP方法,GET,POST,PUT,DELETE,OPTIONS,和HEAD。例如,通过严格的 REST风格,GET操作在不产生任何负面影响的情况下仅返回一个资源状态的表示。

  其他需求都和资源的表示有关系。我们需要注意的是一个资源可以有多种表示。例如,经济统计学为了制作电子数据表,可能会采用各种格式的图形图片或者格式化的数据。。HTTP提供了定义一个请求预接受互联网媒体类型的 “Accept”头,“Accept-Charset”定义可接受的字符编码,“Content-Type”定义响应媒体类型。其他头可以满足关于一个资源的元数据的需要,例如“Last-Modified”日期。HTTP状态码提供了一种格式良好的简短方式来通知一个发送请求的客户端其请求是如何被处理的。理想情况下,一个REST程序工具包可以很简单的使用HTTP标头和状态代码,支持REST概念。

  Restlet框架

  基于java开发的Restlet框架是由一家法国咨询公司——Noelios科技的创办人,Jerome Louvel发起的。在安排上和很多开源工具一样,Noelios支持开源社区开发的同时,在创建应用上也对客户予以专家协助。API和参考实现代码也根据CDDL(Common Development and Distribution License公共发展和分发许可证)来分发,CDDL是一种和Sun的公共许可证兼容的形式,在商业用途上被认为比GPL更加自由。

  Restlet的最初目的是为了支持Fielding 阐释的REST概念,尽可能直接地用java类表示Fielding的关系图中的组件部分。这项工作从2005年开始,在JSR311(java 为REST风格的Web服务设计的API)产生之前。Jerome Louvel是支持Java社区项目在JSR311初始起草工作方面的开发者之一,但那个项目在2007年四月Restlet1.0版框架发布的时候才刚开始。尽管Restlet是一个早期的发布,却已经支持很多重要概念,包括数据用XML,HTML和JSON的表现形式,支持HTTP和HTTPS连接和身份验证。Restlet直接支持Java NIO(non-blocking IO非阻塞输入输出)类,避免现有的servlet API的每个线程处理一个请求的限制。 一个Restlet应用可以独立运行或者作为一个更大容器的组件。此外,这个类库被设计为既可以支持服务器和客户端的同时应用,也可以只做服务器端应用。

相关推荐