HTML直接调用REST后台

10-01-18 banq

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);
<p>

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

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

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

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

         

22
yjb1981
2010-01-19 10:27

什么水平,还在讲这个

banq
2010-01-19 10:46

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

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

dearshor
2010-01-22 18:56

受教了.

BTW, 发现论坛里的一个bug, 那个"顶一下", 在不登录的情形下可以无限"顶"下去, 点过一会刷新一下, 可以接着点.

P.S. 我的浏览器是firefox 3.5.7

flashjay
2010-01-28 09:09

很傻很天真

“HTML直接调用REST后台" -- 我晕!

2Go 1 2 下一页