首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Restlet2.0学习——容易WebApp实现

2012-07-16 
Restlet2.0学习——简单WebApp实现由于自己最近正在学习REST,并需要使用Restlet做ROA的开发。所以把自己的一

Restlet2.0学习——简单WebApp实现
由于自己最近正在学习REST,并需要使用Restlet做ROA的开发。所以把自己的一些事件心得写下,以便以后查阅,也希望可以帮助到一些同学。

首先Rest的概念就不提了。主要就是讲关于如何更好,更简单的利用http协议中的一些基本方法,做统一接口,来实现我们基于资源的架构开发。其中Restful web service 书中也说道。很多时候我们都容易陷入把开发变复杂的情况,比如使用SOAP,这种特殊信封去包装我们的数据。而一些尝试开发Rest的人们,也容易由于经验的印象,陷入架构的变异,开发出Rest-RPC风格或者纯RPC风格的程序。而看了很多在java方面关于Rest原则的架构设计,觉得Restlet基本遵循了Rest的原则,而且相对比较简单。所以尝试拿来写一些简单程序开始入手。当然在Rest1.0时代也有很多达人写了很多实战例子。其中,在iteye社区中就有一位ajax达人写了长长33篇关于Restlet1.0的实例,其中较多都是结合spring使用。而本人几下Restlet2.0的一些实践例子,毕竟想把关于2.0方面的经验分享给大家,也因为1.0中的很多类在2.0中都已经废弃,而且现在官网上主要放着的是2.0和2.1的get started。总要与时俱进的嘛,哈哈。好了,言归正传,让我们开始吧。


Restlet2.0中最近的是从Restlet,Resource和respresentation三个包中展开。其他的一些都是富有一些特殊功能的类而其中基于Uniform和UniformResource的两个接口就是其中的核心。

这篇文章下的项目主要实现就是通过一个test,获取放入webapp中resource,并返回hello world的功能。该项目的名称我们命名为RestLetServlet。在开发之前,需要加入如下jar
org.restlet.jar(restlet核心包,不管是JEE或者是JSE都是必需的)
org.restlet.ext.servlet.jar(JEE下servlet专用包)
junit4.8.2.jar(用于编写单元测试,其实直接使用浏览器也是可以的。)

具体实现如下:

首先我们创建一个Resource。原本在1.0中时继承Resource这个类的。但是在2.0中Resource已经废弃,使用实现UniformResource接口的ServerResource类

public class HelloTest {@Testpublic void testGetHello() throws Exception {ClientResource resource = new ClientResource("http://localhost:8080/RestLetServlet/getHello");resource.get().write(System.out);} }


启动容器,然后使用测试代码运行,在console就可以看到hello world了。
这里的test其实就是模拟了浏览器的功能,所以其实也可以直接向浏览器URL地址栏输入上面的路径依旧可以得到hello world。

这里仅仅是实现了一个get方法的操作。而在webapp下,由于HTML4和HTML5本身设计上的限制。我们不能使用put和delete这两种方法。也不能使用header和options两个辅助方法。所以其他的一些在webapp大多这些方法的使用都是从post进行模拟出来。在restful web service下也指出这个是不得已的演变,只能使用RPC风格进行开发。希望在以后可以有其他的方法解决这个问题。

当然在基于java客户端的clientResource下,那些方法都是可以使用的。所以相对来说学习JSE的restlet可以对rest的核心和编程原则更加的了解和熟悉。不容易让自己走弯路。毕竟也有很多人开发webapp时,看到post可以解决所有的问题,于是就走向了以前开发webapp的老路了。而忽略了rest的真正意义。

热点排行