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的open方法中,有一个方法参数,可以放入REST的四个方法,应该狠毒基于xmlhttp的JS框架如Jquery或Prototype.js都应该支持这种方式。
当然,使用js实际上也是走上RIA架构了,当然RIA和后台服务器之间通讯使用JSON要比XML更加简洁简单。
现在期盼一个javascript + JSON + REST后台的框架能出来多好,好像现在都是依靠组装的,比如JQuery + JSON + Jersey/Apache CXF/RESTlet
虽然灵活可重用,但是使用起来不是方便哦。