HTML直接调用REST后台

REST作为Web服务已经越来越走向主流,SOAP大概只能用在更为复杂的场景,在技术上有些过于复杂,相反REST更容易设置。但是REST需要客户端一些特别代码,在RIA架构中运用比较多,这样使得RIA更象浏览器,但是因为浏览器兼容问题,浏览器本身不能对REST后台直接操作还有些问题,这也使得现在MVC框架继续流行使用的原因。

HTML UI over a REST backend一文提出了一个解决方案。

现在普通浏览器支持的是Html4,而Html 4中对 FORM 的method方法只支持两个get和post,而REST方法有四个:GET POST PUT DELETE,怎么办呢?当然等待HTML5普及了是来不及的,作者提出两个办法:

1. 将方法附在URL中,如 http://frankel.ch/get/customer/1 或http://frankel.ch/delete/customer/1
这个方法违背了REST精神,URL是和资源唯一对应的,但是因为加入方法,破坏了这种一致性。

2.使用javascript,使用AJAX的基础功能:


xmlhttp = new XMLHttpRequest();
xmlhttp.open('DELETE', 'http://frankel.ch/customer/1');
xmlhttp.send(null);

在xmlhttp的open方法中,有一个方法参数,可以放入REST的四个方法,应该狠毒基于xmlhttp的JS框架如Jquery或Prototype.js都应该支持这种方式。

当然,使用js实际上也是走上RIA架构了,当然RIA和后台服务器之间通讯使用JSON要比XML更加简洁简单。

现在期盼一个javascript + JSON + REST后台的框架能出来多好,好像现在都是依靠组装的,比如JQuery + JSON + Jersey/Apache CXF/RESTlet

虽然灵活可重用,但是使用起来不是方便哦。

什么水平,还在讲这个

REST从来都是表面简单,实施有奥妙的。

这篇文章主要亮点是否定了http://frankel.ch/get/customer/1 这种形式的URL,避免误区吧。

受教了.

BTW, 发现论坛里的一个bug, 那个"顶一下", 在不登录的情形下可以无限"顶"下去, 点过一会刷新一下, 可以接着点.
P.S. 我的浏览器是firefox 3.5.7

很傻很天真
“HTML直接调用REST后台" -- 我晕!

2010年01月18日 11:46 "banq"的内容
在期盼一个javascript + JSON + REST后台的框架能出来多好

今天看到这样一个框架 Enunciate

我们一般使用JAX-WS发布基于SOAP的服务. 使用RESTlet or Jersey发布REST. 或者使用 Flex的BlazeDS发布AMF后台服务。

这些配置部署很繁琐,还要教会客户端学会使用你的服务,Enunciate专门处理配置部署繁琐细节,照顾客户端代码,使用Enunciate可以将你的服务接口发布为三种Web服务(SOAP, REST, 和 AMF)。

这里一个使用Enunciate 发布基于Struts2的文章:A Rich Web service API for Struts 2

通过Enunciate一次性将你一个服务接口类表现为三种不同Web服务,这是其最大亮点,隐藏了繁琐,方便组合使用。

我用ajax调用rest(jersey1.8)后台代码执行了,为什么数据就是返回不来呢?