2010-08-09 63 views
3

我正在考慮使用RESTful Web服務構建應用程序。我的想法是將應用程序的RESTful(json等)部分構建爲獨立應用程序,然後將前端(例如html/css/js/etc)作爲該服務的客戶端,儘管不是通過js,我想該網頁無需js就可以工作,所以可能使用LWP等來進行呼叫。基本上結果是2個獨立的應用程序。這是一個壞主意嗎?好主意?我意識到這有點主觀。REST服務應用程序和單獨的前端 - 好主意?

回答

4

我認爲這是一個好主意。

這意味着,在它的結束:

  • 您將有一個完整的API與至少所有的原生圖形界面的功能。所以你不會在圖形界面中獲得任何不能作爲服務使用的功能。

  • 您將避免一些重複的工作,因爲您爲了使圖形界面正常工作所做的一切努力也會反映在Web服務中,因爲它們使用同一個功能。修復一個錯誤,並修復其他錯誤。

  • 這也意味着一致性。

  • 自動化測試可能更容易。

  • 特別是在開放源碼中保持模塊化是很好的,因爲它可以讓人們更容易出去爲您的服務編寫單獨的圖形界面,甚至在使用相同的圖形界面時修改您的服務。

0

我期望看到的這種類型的體系結構的主要問題是,不會構建你認爲你是什麼的。機會是這個應用程序的RESTful部分將前端,提供文本/ HTML與鏈接,讓客戶端發現你的應用程序。

您認爲是RESTful Web服務的部分可能不會是RESTful。您是否打算在Web服務的響應中嵌入鏈接?你會提供一個比application/json或application/xml更具語義含義的媒體類型嗎?如果不是您的Web服務不是RESTful。

我不是說你在做什麼是錯誤的,我只是說你可能沒有做你認爲你正在做的事情,所以要小心使用RESTful約束來指導你,因爲你很可能會發現它非常難以應用它們。

+0

我只是說json和xml等,以確保我清楚。我想這樣做的部分原因是我覺得在用戶端創建一個完整的應用程序非常困難,主要是由於瀏覽器的限制而不是表示。 – xenoterracide 2010-08-09 18:42:30

+0

@xenoterracide Web瀏覽器是迄今爲止最具REST風格的客戶端。您發現哪些瀏覽器限制會導致您的問題? – 2010-08-10 02:25:59

+0

表單,儘管我相信HTML5會在表單中添加對PUT和DELETE的支持,但我不確定任何瀏覽器是否都已實現此功能。我也注意到了一些問題,這些問題是由於缺少表單中的「可皮膚性」,導致人們使用圖像和鏈接(必須以rpc方式)或JavaScript來蒙皮,因爲瀏覽器不允許皮膚形成元素。 – xenoterracide 2010-08-10 18:22:09

相關問題