HTML直接呼叫REST後臺

banq發表於2010-01-18
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 class="indent">

在xmlhttp的open方法中,有一個方法引數,可以放入REST的四個方法,應該狠毒基於xmlhttp的JS框架如Jquery或Prototype.js都應該支援這種方式。

當然,使用js實際上也是走上RIA架構了,當然RIA和後臺伺服器之間通訊使用JSON要比XML更加簡潔簡單。

現在期盼一個javascript + JSON + REST後臺的框架能出來多好,好像現在都是依靠組裝的,比如JQuery + JSON + Jersey/Apache CXF/RESTlet

雖然靈活可重用,但是使用起來不是方便哦。

相關文章